@zohodesk/utils
Version:
DOT Utils Collection
26 lines (20 loc) • 601 B
JavaScript
export const deepEqual = (a, b) => {
if (a === b) {
return true;
}
if (typeof a === 'object' && typeof b === 'object' && a !== null && b !== null) {
if (Array.isArray(a) !== Array.isArray(b)) {
return false;
}
const keysA = Object.keys(a);
const keysB = Object.keys(b);
if (keysA.length !== keysB.length) {
return false;
}
return keysA.every(key => deepEqual(a[key], b[key]));
}
if (typeof a === 'function' && typeof b === 'function') {
return a.toString().replace(/\s+/g, '') === b.toString().replace(/\s+/g, '');
}
return false;
};