improve algo by skipping an O(n) operation

This commit is contained in:
Michael Telatynski 2021-02-19 00:15:00 +00:00
parent d4df9e731d
commit 32cca0534c

View file

@ -89,9 +89,10 @@ export function objectHasDiff<O extends {}>(a: O, b: O): boolean {
if (a === b) return false;
const aKeys = Object.keys(a);
const bKeys = Object.keys(b);
if (arrayHasDiff(aKeys, bKeys)) return true;
const possibleChanges = arrayUnion(aKeys, bKeys);
// if the amalgamation of both sets of keys has the a different length to the inputs then there must be a change
if (possibleChanges.length !== aKeys.length) return true;
return possibleChanges.some(k => a[k] !== b[k]);
}