You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

28 lines
596 B
JavaScript

6 years ago
/*!
* is-equal-shallow <https://github.com/jonschlinkert/is-equal-shallow>
*
* Copyright (c) 2015, Jon Schlinkert.
* Licensed under the MIT License.
*/
'use strict';
var isPrimitive = require('is-primitive');
module.exports = function isEqual(a, b) {
if (!a && !b) { return true; }
if (!a && b || a && !b) { return false; }
var numKeysA = 0, numKeysB = 0, key;
for (key in b) {
numKeysB++;
if (!isPrimitive(b[key]) || !a.hasOwnProperty(key) || (a[key] !== b[key])) {
return false;
}
}
for (key in a) {
numKeysA++;
}
return numKeysA === numKeysB;
};