如何将两个对象之间字段值的变化放入变量中?
How can I put into a variable a change in field values between two objects?
我有以下两个对象,它们将始终具有相同的字段数量/名称:
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。
使用如何循环或枚举JavaScript对象?,循环遍历属性并将其与另一个对象中的属性进行比较:
for (var key in a) {
if (a.hasOwnProperty(key)) {
if(b[key] != a[key]) {
//values are are different, handle difference
}
}
}
hasOwnProperty
检查是为了确保我们没有处理来自对象原型的属性。这可能是相关的,也可能是不相关的,这取决于你的对象是如何构建和使用的。
请注意IE8的新版本不支持hasOwnProperty
相关文章:
- 重新加载页面时Javascript变量发生变化
- 如何检测和打印变化变量LESS
- 当变量发生变化时运行PHP
- 使用 jquery 检测变量变化
- 如果两个值都会动态变化,则用变量替换某个字符串的一部分 - Javascript
- 为什么 Angular 没有注意到这个变量的值发生了变化
- 如何防止变量在 JavaScript 中发生变化
- 为什么这个变量在函数之间传递时会发生变化
- 指令侦听控制器变量的变化
- JAVASCRIPT 变量在函数中没有变化
- 双向绑定不识别 AngularJS 中的变量变化
- 角度范围之外的变量的变化
- 设置路由时,角度范围变量会发生变化
- PHP 变量根据设备宽度而变化
- 原型取决于全局变量(如果该变量发生变化怎么办)
- 范围变量以角度更新,但变化不会反映给用户
- 在.then()单元测试中AngularJS$作用域变量的变化
- 全局变量不't随jquery函数变化
- 如何在函数中有一个动态变量,而不将其链接到变化的变量
- 函数外部的函数变化变量