Peter Seliger
Apr 26, 2024

--

A method which checks for structural equality would look more like ...

  function isDeepDataStructureEquality(a, b) {
let isEqual = Object.is(a, b);

if (!isEqual) {
if (Array.isArray(a) && Array.isArray(b)) {

isEqual = (a.length === b.length) && a.every(
(item, idx) => isDeepDataStructureEquality(item, b[idx])
);
} else if (
a && b
&& (typeof a === 'object')
&& (typeof b === 'object')
) {
const aKeys = Object.keys(a);
const bKeys = Object.keys(b);

isEqual = (aKeys.length === bKeys.length) && aKeys.every(
(key, idx) => isDeepDataStructureEquality(a[key], b[key])
);
}
}
return isEqual;
}

--

--

Responses (1)