nexora
Version:
A lightweight, production-ready JavaScript library for building user interfaces, supporting JSX.
26 lines (25 loc) • 741 B
JavaScript
/**
* Shallow equal function to compare two objects
* @param obj1 - The first object to compare
* @param obj2 - The second object to compare
* @returns True if the objects are shallowly equal, false otherwise
*/
export function shallowEqual(obj1, obj2) {
if (obj1 === obj2) {
return true;
}
if (typeof obj1 !== 'object' || obj1 === null || typeof obj2 !== 'object' || obj2 === null) {
return false;
}
const keys1 = Object.keys(obj1);
const keys2 = Object.keys(obj2);
if (keys1.length !== keys2.length) {
return false;
}
for (const key of keys1) {
if (!obj2.hasOwnProperty(key) || obj1[key] !== obj2[key]) {
return false;
}
}
return true;
}