Skip to content

Instantly share code, notes, and snippets.

@gitfaf
Created August 17, 2017 19:18
Show Gist options
  • Save gitfaf/24473ea072febe9ad32215a44d5b2a95 to your computer and use it in GitHub Desktop.
Save gitfaf/24473ea072febe9ad32215a44d5b2a95 to your computer and use it in GitHub Desktop.
Deep equal check for objects
function deepEqual(a, b) {
let keysA = Object.keys(a);
let keysB = Object.keys(b);
if (keysA.length !== keysB.length) {
return false;
}
for (let i = 0, len = keysA.length; i < len; i++) {
let key = keysA[i];
if (typeof a[key] === 'object' && typeof b[key] === 'object') {
return deepEqual(a[key], b[key]);
} else {
if (a[key] !== b[key]) {
return false;
}
}
}
return true;
}
var objA = {
name: 'Git Faf',
skills: ['JS', "CS"]
};
var objB = {
name: 'Git Faf',
skills: ['JS', "CS"]
};
var objC = {
name: 'Git Faf',
skills: ['CS', "JS"]
};
var objD = {
name: 'GitFaf',
skills: ['JS', "CS"]
};
console.log(deepEqual(objA, objB)); // true
console.log(deepEqual(objA, objC)); // false
console.log(deepEqual(objA, objD)); // false
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment