var i={ key1:value1, key2:value2 }
var j={ key2:value2, key1:value1 }
How to compare above objects and get answer true?
var i={ key1:value1, key2:value2 }
var j={ key2:value2, key1:value1 }
How to compare above objects and get answer true?
You could sort the object keys and compare
var i = {
key1: 'value1',
key2: 'value2'
}
var j = {
key2: 'value2',
key1: 'value1'
}
console.log(JSON.stringify(sortedObject(i)) === JSON.stringify(sortedObject(j)))
function sortedObject(unordered) {
return Object.keys(unordered).sort().reduce(
(obj, key) => {
obj[key] = unordered[key];
return obj;
}, {});
}
Compare Keys
var i={ key1:"value1", key2:"value2"}
var j={ key2:"value2", key1:"value1" }
for(k in i) {
for(p in j) {
console.log(k == p)
}
}
Compare Values
var i={ key1:"value1", key2:"value2"}
var j={ key2:"value2", key1:"value1" }
for(k in i) {
for(p in j) {
console.log(i[k] == j[p])
}
}
For this purpose, you can use lodash library. You're looking for a method called isEqual
.
In the example below, you can see that I passed the objects from your example and this code returns true
. You can play around with the code right here (online lodash tester).
var i={ key1: '13', key2: 140 }
var j={ key2: 140, key1: '13' }
_.isEqual(i, j) // returns true