对比对象
2024年04月09日
一、认识
对比对象 就是将 newObject
与 oldObject
进行 diff
, diff
过程如下:
-
如果
newObject
中存在oldObject
的属性-
如果属性值相同,则复用旧属性
-
如果属性值不相同,那么进行更新操作,
-
-
如果
newObject
中没有oldObject
,则进行删除操作
一、for oldObject、for newObject
const oldObject = {
a: 1,
b: 2,
c: 3,
};
const newObject = {
a: 11,
d: 12,
};
const object = oldObject;
console.log(object);
function patchObject(oldObject, newObject) {
if (oldObject != null && Object.keys(oldObject).length) {
for (const key in oldObject) {
if (!(key in newObject)) {
delete object[key];
}
}
}
if (newObject != null && Object.keys(newObject).length) {
for (const key in newObject) {
if (newObject[key] !== oldObject[key]) {
object[key] = newObject[key];
}
}
}
}
patchObject(oldObject, newObject);
console.log(object);