suranadira-utils
Version:
Suranadira utilities
36 lines (33 loc) • 1.14 kB
JavaScript
import { compareArrays } from "./arrays";
// Compare two objects
export const compareObjects = (object, object2) => {
for (let propName in object) {
if (object.hasOwnProperty(propName) !== object2.hasOwnProperty(propName)) {
return false;
} else if (typeof object[propName] != typeof object2[propName]) {
return false;
}
}
for (let propName in object2) {
if (object.hasOwnProperty(propName) !== object2.hasOwnProperty(propName)) {
return false;
} else if (typeof object[propName] != typeof object2[propName]) {
return false;
}
if (!object.hasOwnProperty(propName)) continue;
if (
object[propName] instanceof Array &&
object2[propName] instanceof Array
) {
if (!compareArrays(object[propName], object2[propName])) return false;
} else if (
object[propName] instanceof Object &&
object2[propName] instanceof Object
) {
if (!compareObjects(object[propName], object2[propName])) return false;
} else if (object[propName] !== object2[propName]) {
return false;
}
}
return true;
};