Date
objects with the same time, using Date.prototype.getTime()
.null
or undefined
or if their prototypes differ.Object.keys()
to check if both values have the same number of keys.Array.prototype.every()
to check if every key in a
exists in b
and if they are equivalent by calling equals()
recursively.const equals = (a, b) => { if (a === b) return true; if (a instanceof Date && b instanceof Date) return a.getTime() === b.getTime(); if (!a || !b || (typeof a !== 'object' && typeof b !== 'object')) return a === b; if (a.prototype !== b.prototype) return false; const keys = Object.keys(a); if (keys.length !== Object.keys(b).length) return false; return keys.every(k => equals(a[k], b[k])); };
equals( { a: [2, { e: 3 }], b: [4], c: 'foo' }, { a: [2, { e: 3 }], b: [4], c: 'foo' } ); // true equals([1, 2, 3], { 0: 1, 1: 2, 2: 3 }); // true
Subscribe to get resources directly to your inbox. You won't receive any spam! ✌️