Skip to content

Instantly share code, notes, and snippets.

@minedun6
Created September 17, 2019 11:25
Show Gist options
  • Save minedun6/23e0fc8be1d605b8dd376e5cb267b262 to your computer and use it in GitHub Desktop.
Save minedun6/23e0fc8be1d605b8dd376e5cb267b262 to your computer and use it in GitHub Desktop.
Compare 2 objects values @nicbell
//How To Compare Object Values
var a = { blah: 1 };
var b = { blah: 1 };
var c = a;
var d = { blah: 2 };
Object.compare = function (obj1, obj2) {
//Loop through properties in object 1
for (var p in obj1) {
//Check property exists on both objects
if (obj1.hasOwnProperty(p) !== obj2.hasOwnProperty(p)) return false;
switch (typeof (obj1[p])) {
//Deep compare objects
case 'object':
if (!Object.compare(obj1[p], obj2[p])) return false;
break;
//Compare function code
case 'function':
if (typeof (obj2[p]) == 'undefined' || (p != 'compare' && obj1[p].toString() != obj2[p].toString())) return false;
break;
//Compare values
default:
if (obj1[p] != obj2[p]) return false;
}
}
//Check object 2 for any extra properties
for (var p in obj2) {
if (typeof (obj1[p]) == 'undefined') return false;
}
return true;
};
console.log(Object.compare(a, b)); //true
console.log(Object.compare(a, c)); //true
console.log(Object.compare(a, d)); //false
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment