【发布时间】:2020-10-19 05:25:04
【问题描述】:
我正在处理需要比较 2 个 JSON 对象的要求。比较 JSON 1 和 JSON 2 应该使得结果 JSON 应该是 JSON1 键并且值应该从 JSON2 中获取。只能为具有不同值的相同键更改值。另外,我只需要突出显示结果中的更改值。这是我能够比较并获得 JSON 结果的代码,我只坚持突出显示更改的值。我可以知道我哪里出错或缺少什么吗?
var compareJSON = function(obj1, obj2) {
var ret = {};
for(var i in obj2) {
if(!obj1.hasOwnProperty(i) || obj2[i] !== obj1[i]) {
ret[i] = obj2[i];
}
}
return ret;
};
//JSON 1
var a = {
"name": [
"complex"
],
"dfts": [
{
"valuec": {
"valuesid": "1232"
},
"ids": {
"idp": "chanellp"
}
}
],
"container": {
"contid": "na",
"dpvalueus": {
"ftsme": "na"
},
"attributes": {
"channelpo": "na"
},
"item": [
{
"contid": {
"stjsk": "wher"
},
"quantity": "na",
"dpvalue": {
"valuers": "na"
}
}
]
}
};
//JSON 2
var b = {
"name": [
"simple"
],
"dfts": [
{
"valuec": {
"valuesid": "75756754"
},
"ids": {
"idp": "where"
}
}
],
"container": {
"contid": "360",
"dpvalueus": {
"ftsme": "100"
},
"attributes": {
"channelpo": "usual"
},
"item": [
{
"contid": {
"stjsk": "stkh"
},
"quantity": "1",
"dpvalue": {
"valuers": "wholesome"
}
}
]
}
};
console.log(compareJSON(a, b));
结果可以在控制台看到。
【问题讨论】:
-
您希望如何突出显示更改的值?
-
@Moutah 像黄色背景,使用 css
-
所以,这不是 JSON。更新值时,您需要跟踪更新的是哪一个。那将在另一个对象或另一个函数中。
-
@Moutah 我该怎么做?有什么例子吗?
标签: javascript html arrays json javascript-objects