我有以下两个对象,它们的字段数量/名称始终相同:
var a = {
c: 25,
field1: 10,
field2: 20,
field3: "x"
}
var b = {
c: 25,
field1: 10,
field2: 22,
field3: "y"
}
如果字段发生了变化,我是否可以将其放入变量中,因此我有一个变量来显示包含以下内容的文本:
var changes = "field2: 20 > 22, field3: x > y"
我认为我需要做的是以某种方式迭代每个字段的值并进行比较,但我不确定如何使用Javascript。
答案 0 :(得分:0)
使用How do I loop through or enumerate a JavaScript object?,遍历属性并将其与另一个对象中的属性进行比较:
for (var key in a) {
if (a.hasOwnProperty(key)) {
if(b[key] != a[key]) {
//values are are different, handle difference
}
}
}
hasOwnProperty
检查是为了确保我们不处理对象原型的属性。根据您的对象的构建和使用方式,这可能相关也可能不相关。
请注意,IE8的onder版本不支持hasOwnProperty
。