var list1 = [
{
id: 'node1',
children: [
{
id: 'node11',
children: []
}
]
}
];
var list2 = [
{
id: 'node1',
children: [
{
id: 'node13',
children: []
}
]
}
];
var resultList = [
{
id: 'node1',
children: [
{
id: 'node11',
children: []
}, {
id: 'node13',
children: []
}
]
}
];
我所有的数组都是树,一个节点只能属于一个父节点。 我想合并list1和list2得到resultList。我试了很多方法,递归回调,字符串搜索和替换等等,但我还是想不通。
最佳答案
如果我没理解错的话,您希望通过 id 压缩它。
function getCompactById(arr) { // must have the same id
var res = [];
var obj = {};
obj.id = arr[0][0].id;
obj.children = [];
for(var i = 0; i < arr.length; i += 1) {
obj.children.push(arr[i][0].children[0]);
}
res.push(obj);
return res;
}
数组看起来像var arr = [list1, list2];
在函数中创建一个数组和一个对象。该对象获得一个 id 和一个数组。 id 始终相同,因此我们从第一个数组中获取它。遍历数组并推送所有对象 arr[i][0].children[0]
.循环后将 obj 插入数组。返回结果数组。
关于javascript - 如何合并维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30290019/