@ozen-ui/kit
Version:
React component library
53 lines (52 loc) • 1.3 kB
JavaScript
import { isArray } from '../array';
var shallowEqualArrays = function (arrayA, arrayB) {
if (arrayA === arrayB) {
return true;
}
if (!arrayA || !arrayB) {
return false;
}
var length = arrayA.length;
if (arrayB.length !== length) {
return false;
}
for (var i = 0; i < length; i++) {
if (arrayA[i] !== arrayB[i]) {
return false;
}
}
return true;
};
var shallowEqualObjects = function (objectA, objectB) {
if (objectA === objectB) {
return true;
}
if (!objectA || !objectB) {
return false;
}
var aKeys = Object.keys(objectA);
var bKeys = Object.keys(objectB);
var len = aKeys.length;
if (bKeys.length !== len) {
return false;
}
for (var i = 0; i < len; i++) {
var key = aKeys[i];
if (objectA[key] !== objectB[key] ||
!Object.prototype.hasOwnProperty.call(objectB, key)) {
return false;
}
}
return true;
};
export var shallowEqual = function (a, b) {
var aIsArray = isArray(a);
var bIsArray = isArray(b);
if (aIsArray !== bIsArray) {
return false;
}
if (aIsArray && bIsArray) {
return shallowEqualArrays(a, b);
}
return shallowEqualObjects(a, b);
};