用js写一个递归方法,遍历一个tree结构数组,找到与输入id相同的节点并返回
时间: 2024-03-10 14:45:10 浏览: 66
好的,以下是一个用 JavaScript 编写的递归方法,可以遍历一个 tree 结构数组,找到与输入 id 相同的节点并返回:
```javascript
function findNodeById(id, tree) {
for (var i = 0; i < tree.length; i++) {
if (tree[i].id === id) {
return tree[i];
} else if (tree[i].children) {
var result = findNodeById(id, tree[i].children);
if (result) {
return result;
}
}
}
return null;
}
```
使用方法:
```javascript
var tree = [
{
id: 1,
name: 'Node 1',
children: [
{
id: 2,
name: 'Node 2',
children: []
},
{
id: 3,
name: 'Node 3',
children: [
{
id: 4,
name: 'Node 4',
children: []
}
]
}
]
},
{
id: 5,
name: 'Node 5',
children: []
}
];
var node = findNodeById(4, tree);
console.log(node); // { id: 4, name: 'Node 4', children: [] }
```
在上面的例子中,我们调用 `findNodeById` 方法,输入要查找的 id(4)以及 tree 结构数组,该方法会返回一个包含 id 为 4 的节点的对象。
阅读全文