js 将一个tree 数据与另一个tree数据同级合并
时间: 2024-02-11 09:06:05 浏览: 206
假设您的两个树形数据结构如下:
```javascript
const tree1 = [{
id: '1',
label: 'Node 1',
children: [{
id: '2',
label: 'Node 1-1',
children: []
}]
}];
const tree2 = [{
id: '3',
label: 'Node 2',
children: []
}];
```
您可以使用递归的方式将这两个树形数据合并为一个同级的树形结构。以下是一个示例代码:
```javascript
function mergeTrees(tree1, tree2) {
// 遍历tree2中的每个节点,将其添加到tree1中
for (let i = 0; i < tree2.length; i++) {
const node = tree2[i];
// 在tree1中查找与当前节点id相同的节点
const sameNode = tree1.find(item => item.id === node.id);
if (sameNode) {
// 如果在tree1中找到了同id的节点,将其子节点合并
mergeTrees(sameNode.children, node.children);
} else {
// 否则直接将节点添加到tree1中
tree1.push(node);
}
}
}
mergeTrees(tree1, tree2);
console.log(tree1);
```
上述代码中,`mergeTrees`函数接收两个参数,分别是要合并的两个树形数据。函数首先遍历`tree2`中的每个节点,然后在`tree1`中查找与当前节点id相同的节点。如果在`tree1`中找到了同id的节点,将其子节点合并;否则直接将节点添加到`tree1`中。最终,`tree1`中的节点已经全部合并完毕。
希望这个示例代码能够帮助到您。
阅读全文