js 树结构获取某个父节点下面的所有子节点
时间: 2023-09-01 13:03:19 浏览: 119
在JavaScript中,我们可以通过遍历树结构来获取某个父节点下的所有子节点。下面是一个使用递归方法来实现的示例代码:
```javascript
// 定义树结构数据
var data = [
{ id: 1, name: '节点1', children: [
{ id: 2, name: '节点1-1', children: [] },
{ id: 3, name: '节点1-2', children: [
{ id: 4, name: '节点1-2-1', children: [] },
{ id: 5, name: '节点1-2-2', children: [] }
] }
] },
{ id: 6, name: '节点2', children: [] },
{ id: 7, name: '节点3', children: [] }
];
// 定义函数来获取指定父节点下的所有子节点
function getChildren(parentNode, result) {
for (var i = 0; i < parentNode.children.length; i++) {
var childNode = parentNode.children[i];
result.push(childNode); // 将子节点添加到结果数组中
if (childNode.children.length > 0) {
getChildren(childNode, result); // 递归调用获取子节点的子节点
}
}
}
// 调用函数来获取指定父节点下的所有子节点
var parentId = 1; // 指定父节点的id
var parent = data.find(node => node.id === parentId); // 找到指定的父节点
var children = []; // 用于存储子节点的结果数组
getChildren(parent, children);
console.log(children); // 输出结果:[{ id: 2, name: '节点1-1', children: [] }, { id: 3, name: '节点1-2', children: [...] }, { id: 4, name: '节点1-2-1', children: [] }, { id: 5, name: '节点1-2-2', children: [] }]
```
以上代码中,我们首先定义了一个包含树结构的数据数组。然后,我们通过定义一个`getChildren`函数,使用递归的方式遍历树结构,从指定的父节点开始获取所有子节点。最后,我们调用这个函数来获取指定父节点下的所有子节点,并将结果存储在一个数组中。
阅读全文