Javascript - 使用对象键的比较项目

时间:2017-07-05 22:40:17

标签: javascript

我找到了获取对象的所有属性的方法:

for (const key of Object.keys(obj)) {
    const val = obj[key];
    // use val
}

但是,如果这些对象的每个字段都有一个布尔字段来标记该对象与比较不同,那么如何比较2个对象呢?

export class MyObject {
   fieldOne: number;
   fieldOneChanged: boolean;
   fieldTwo: number;
   fieldTwoChanged: boolean;
   // and many more fields
}

我将以下内容进行比较:

if (myObj1.fieldOne != myObj2.fieldOne) {
    myObj2.fieldOneChanged = true;
}

现在我想知道如何使用Object.keys()来减少比较并使其更通用。

1 个答案:

答案 0 :(得分:1)

使用key变量比较两个对象的属性。

for (const key of Object.keys(myObj1)) {
    if (myObj1[key] != myObj2[key]) {
        myObj2[key + "Changed"] = true;
    }
}