如何将两个对象之间的字段值更改放入变量?

时间:2014-06-04 15:40:36

标签: javascript

我有以下两个对象,它们的字段数量/名称始终相同:

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。

1 个答案:

答案 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