深比较的函数 deepEqual
- 递归方式
function isEqual(x, y) {
if (x === y) {
return true;
} else if (
typeof x === "object" &&
x !== null &&
typeof y === "object" &&
y !== null
) {
const keysX = Object.keys(x);
const keysY = Object.keys(y);
if (keysX.length !== keysY.length) {
return false;
}
for (const key of keysX) {
if (!isEqual(x[key], y[key])) {
return false;
}
}
return true;
} else {
return false;
}
}