Skip to content

Instantly share code, notes, and snippets.

@tmcw
Created January 27, 2016 21:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tmcw/0fa5d9deec799f0fbaa3 to your computer and use it in GitHub Desktop.
Save tmcw/0fa5d9deec799f0fbaa3 to your computer and use it in GitHub Desktop.
"use strict";
function shallowEqual(objA, objB, tell) {
if (objA === objB) {
return true;
}
var keysA = Object.keys(objA);
var keysB = Object.keys(objB);
if (keysA.length !== keysB.length) {
return false;
}
// Test for A's keys different from B.
var hasOwn = Object.prototype.hasOwnProperty;
for (var i = 0; i < keysA.length; i++) {
if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {
if (tell) {
return keysA[i];
}
return false;
}
}
return true;
}
module.exports = shallowEqual;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment