要遍历两个对象以查看变化,您可以使用以下代码示例:
function compareObjects(obj1, obj2) {
// 遍历第一个对象的属性
for (let key in obj1) {
// 检查第一个对象的属性是否存在于第二个对象中
if (obj1.hasOwnProperty(key) && obj2.hasOwnProperty(key)) {
// 检查属性的值是否相等
if (obj1[key] !== obj2[key]) {
console.log(`属性 ${key} 的值发生了变化,旧值为 ${obj1[key]},新值为 ${obj2[key]}`);
}
} else {
console.log(`属性 ${key} 在第二个对象中不存在`);
}
}
// 遍历第二个对象的属性
for (let key in obj2) {
// 检查第二个对象的属性是否存在于第一个对象中
if (obj2.hasOwnProperty(key) && !obj1.hasOwnProperty(key)) {
console.log(`属性 ${key} 在第一个对象中不存在`);
}
}
}
const obj1 = { name: 'John', age: 30 };
const obj2 = { name: 'John', age: 35 };
compareObjects(obj1, obj2);
这段代码将比较两个对象 obj1
和 obj2
的属性,并打印出任何属性值发生变化的情况。它首先遍历 obj1
的属性,检查每个属性是否存在于 obj2
中,并比较属性的值。如果属性的值不相等,则打印出变化的属性名和旧值、新值。然后,它遍历 obj2
的属性,检查每个属性是否存在于 obj1
中。如果属性在 obj1
中不存在,则打印出属性名。