Olá,
boa tarde.
A comparação que você está fazendo no valueOf não é dos valores armazenados em n1 e n2 . valueOf não é um propriedade e sim método. Deve ser chamado com (). O que você está comparando aí é a definição da função.
Se você colocar os () na comparação, como no exemplo abaixo, você vai comparar os objetos e o resultado vai false.
Veja o exempo abaixo:
let data1 = `[
{
"ticker": "MGLU3",
"preco": "51.60"
}
]`;
let data2 = `[
{
"ticker": "MGLU3",
"preco": "51.60"
}
]`;
var obj1 = JSON.parse(data1);
var obj2 = JSON.parse(data2);
obj1.valueOf == obj2.valueOf // Comparação da definição da função *valueOf*
//true
obj1.valueOf() == obj2.valueOf() //Comparação dos objetos obj1 e obj2
//false
JSON.stringify(obj1) == JSON.stringify(obj2) //Comparação dos valores dos objetos convertidos para string
//true
Espero ter ajudado.
Abraço!