gpt4 book ai didi

javascript - 如何合并维数组

转载 作者:数据小太阳 更新时间:2023-10-29 05:33:08 25 4
gpt4 key购买 nike

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 插入数组。返回结果数组。

Demo

关于javascript - 如何合并维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30290019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com