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)
OUTPUT:
[ { name: 'John', age: 24 }, { name: 'Victor', age: 28 } ]
[ { name: 'John', age: 24 }, { name: 'Victor', age: 28 } ]
object
object
false
object users and newUser have exactly same items and values.
They why users==newUser is false?
In Javascript the equals operator compares object instances, not values. They are 2 different instances, so not equal.
One way to compare the values is to use a deep equals library. Another way is to compare the JSON.stringify value.
JSON.stringify(users) === JSON.stringify(newUser) // true
A caveat of the stringify approach is that undefined values are stripped.