fluxx
Version:
Terse application state management
26 lines (19 loc) • 637 B
JavaScript
;
exports.__esModule = true;
exports.default = shallowEqual;
/* Efficient shallow comparison of two objects */
function shallowEqual(objA, objB) {
if (objA === objB) return true;
var keysA = Object.keys(objA);
var keysB = Object.keys(objB);
// Test for A's keys different from B's.
for (var i = 0; i < keysA.length; i++) {
if (objA[keysA[i]] !== objB[keysA[i]]) return false;
}
// Test for B's keys different from A's.
// Handles the case where B has a property that A doesn't.
for (var i = 0; i < keysB.length; i++) {
if (objA[keysB[i]] !== objB[keysB[i]]) return false;
}
return true;
}