如何比较两个对象的不同值,然后将其压入数组类型变量



这里我有两个对象data

{
"obj1": {
"product": "Book",
"category": "sci-fi",
"title": "interstellar",
},
"obj2": {
"product": "Book",
"category": "horror",
"title": "evil dead",                    
},
"differences": []
}

从该数据中,我需要比较obj1obj2变量的每个值,找到与这两个对象具有不同值的键,然后将其推入differences变量。

预期结果:

{
"obj1": {
"product": "Book",
"category": "sci-fi",
"title": "interstellar",
},
"obj2": {
"product": "Book",
"category": "horror",
"title": "evil dead",                    
},
"differences": [
"category",
"title"
]
}

谁有解决这个问题的建议?

您可以简单地创建2个循环,每个对象一个,然后按键进行比较:

let data = {
"obj1": {
"product": "Book",
"category": "sci-fi",
"title": "interstellar",
},
"obj2": {
"product": "Book",
"category": "horror",
"title": "evil dead",
},
"differences": []
};
for (let key1 in data.obj1) {
for (let key2 in data.obj2) {
if (key1 === key2 && data.obj1[key1] !== data.obj2[key2]) {
data.differences.push(key1);
}
}
}
console.log(data);

相关内容

最新更新