const users = [ {name:'John',age:24}, {name:'Victor',age:28} ]; const newUser = JSON.parse(JSON.stringify(users)); console.log(users); console.log(newUser); console.log(typeof(users)); console.log(typeof(newUser)); console.log(users==newUser)PRODUCCIÓN:
[ { name: 'John', age: 24 }, { name: 'Victor', age: 28 } ] [ { name: 'John', age: 24 }, { name: 'Victor', age: 28 } ] object object false los users de objetos y newUser tienen exactamente los mismos elementos y valores. ¿Por qué users==newUser es falso?
En Javascript , el operador de igualdad compara instancias de objetos, no valores. Son 2 instancias diferentes, por lo que no son iguales.
Una forma de comparar los valores es usar una biblioteca de deep equals . Otra forma es comparar el valor de JSON.stringify .
JSON.stringify(users) === JSON.stringify(newUser) // true Una advertencia del enfoque stringify es que se eliminan los valores undefined .