这里我有两个对象data
{
"obj1": {
"product": "Book",
"category": "sci-fi",
"title": "interstellar",
},
"obj2": {
"product": "Book",
"category": "horror",
"title": "evil dead",
},
"differences": []
}
从该数据中,我需要比较obj1
和obj2
变量的每个值,找到与这两个对象具有不同值的键,然后将其推入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);