我有以下 JSON 对象。我需要删除重复项并使用纯 Javascript 合并内部对象。我该怎么做?
[{
"id" : 1,
"name" : "abc",
"nodes" :[
{
"nodeId" : 20,
"nodeName" : "test1"
}
]
},
{
"id" : 1,
"name" : "abc",
"nodes" :[
{
"nodeId" : 21,
"nodeName" : "test2"
}
]
}]
以下是我期望作为输出的对象。
[{
"id" : 1,
"name" : "abc",
"nodes" :[
{
"nodeId" : 20,
"nodeName" : "test1"
},
{
"nodeId" : 21,
"nodeName" : "test2"
},
]
}]
问候。
雪茄
最佳答案
首先将JSON转成Javascript数组,方便访问:
var arr = JSON.parse(json);
然后为结果创建一个数组并循环遍历项目并与您放入结果的项目进行比较:
var result = [];
for (var i = 0; i < arr.length; i++) {
var found = false;
for (var j = 0; j < result.length; j++) {
if (result[j].id == arr[i].id && result[j].name == arr[i].name) {
found = true;
result[j].nodes = result[j].nodes.concat(arr[i].nodes);
break;
}
}
if (!found) {
result.push(arr[i]);
}
}
如果这是您需要的最终结果,您可以从数组创建 JSON:
json = JSON.stringify(result);
关于javascript - 删除重复项并合并 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26233959/