js获取树形数据children的id
时间: 2023-12-09 20:02:31 浏览: 103
假设树形数据如下:
```javascript
const treeData = [
{
id: 1,
label: "Node 1",
children: [
{
id: 2,
label: "Node 1-1",
children: [
{
id: 3,
label: "Node 1-1-1",
children: []
},
{
id: 4,
label: "Node 1-1-2",
children: []
}
]
},
{
id: 5,
label: "Node 1-2",
children: []
}
]
},
{
id: 6,
label: "Node 2",
children: [
{
id: 7,
label: "Node 2-1",
children: []
},
{
id: 8,
label: "Node 2-2",
children: []
}
]
}
];
```
可以使用递归的方式获取所有子节点的 `id`,代码如下:
```javascript
function getChildIds(node) {
let ids = [];
for (let child of node.children) {
ids.push(child.id);
ids.push(...getChildIds(child));
}
return ids;
}
// 获取 id 为 1 的节点的所有子节点的 id
const node = treeData.find(node => node.id === 1);
const childIds = getChildIds(node);
console.log(childIds); // [2, 3, 4, 5]
```
上面的代码中,`getChildIds` 函数接受一个节点作为参数,返回该节点的所有子节点的 `id` 组成的数组。对于每个子节点,先将其 `id` 添加到数组中,然后递归调用 `getChildIds` 函数获取其所有子节点的 `id`,将其扁平化后再添加到数组中,最终返回该数组。
阅读全文