JSFiddle - React, Tailwind, and code Playground
by mmansion
JavaScript
var util = {
isEqual: function(a,b) {
for(var p in a){
var av = a[p], bv = b[p];
//recursion
if (typeof(av) == 'object' || typeof(bv) == 'object' ) {
if (this.compare(av,bv) !== true){
return false;
}
} else { //simple comparisons
if(a[p] !== b[p]){
return false;
}
}
}
return true;
},
/**
* Compares two objects to determine if they are identical.
* @param {Object} o1
* @param {Object} o2
* @return Boolean
*/
compare: function(o1, o2){
//can't use json encoding in case objects contain functions - recursion will fail
//can't compare non-objects
if (!(Ext.isObject(o1) && Ext.isObject(o2))) return false;
if (isEqual(o1,o2) !== true) return false;
if (isEqual(o2,o1) !== true) return false;
return true;
}
}
var obj1 = {
foo: 'bar',
num: 2,
'salt': ['savory', 'lick']
};
var obj2 = {
foo: 'bar',
num: 2,
'salt': ['savory', 'lick']
};
document.write(util.isEqual(obj1,obj2));