Is it possible to do a "deep" comparison of two object in Angular? What I would like to do is compare each key/value pair. For example:
Object 1
{
key1: "value1",
key2: "value2",
key3: "value3"
}
Object 2
{
key1: "value1",
key2: "newvalue",
key3: "value3"
}
What I need is for the comparison to fail since only one of the key/value pairs is diffent. In other words ALL of the key/value pairs must match exactly or else failure. Is this something already built into Angular. I'm sure I could write my own service if I really needed to, but I was hoping it was already built in. Similar to angular.equals.
To compare two objects you can use:
angular.equals(obj1, obj2)
It does a deep comparison and does not depend on the order of the keys See AngularJS DOCS and a little Demo
var obj1 = {
key1: "value1",
key2: "value2",
key3: {a: "aa", b: "bb"}
}
var obj2 = {
key2: "value2",
key1: "value1",
key3: {a: "aa", b: "bb"}
}
angular.equals(obj1, obj2) //<--- would return true
Assuming that the order is the same in both objects, just stringify
them both and compare!
JSON.stringify(obj1) == JSON.stringify(obj2);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With