tree数据过滤出来checked为true的id
时间: 2024-09-14 11:02:49 浏览: 42
在处理树形结构的数据时,如果需要过滤出所有勾选(checked为true)的节点的ID,我们通常会使用递归或迭代的方式来遍历树形数据结构,并收集满足条件的节点ID。以下是一个递归的实现示例:
```javascript
// 假设我们有一个树形数据结构,每个节点都有一个checked属性和一个children数组。
const treeData = [
// ... 树形结构数据
];
// 递归函数,用于遍历树形数据并收集所有勾选的节点ID。
function collectCheckedIds(nodes) {
let ids = [];
nodes.forEach(node => {
if (node.checked) {
ids.push(node.id); // 假设每个节点都有一个唯一的id属性
}
if (node.children && node.children.length > 0) {
// 如果节点有子节点,递归调用
ids = ids.concat(collectCheckedIds(node.children));
}
});
return ids;
}
// 调用递归函数开始收集
const checkedIds = collectCheckedIds(treeData);
console.log(checkedIds); // 输出所有勾选的节点ID
```
在这个示例中,`collectCheckedIds` 函数递归地遍历了树形数据结构,检查每个节点的 `checked` 属性。如果 `checked` 为 `true`,则将该节点的 `id` 添加到结果数组中。如果节点包含子节点,函数将递归地对其子节点执行相同的操作,并将子节点的结果与当前节点的结果合并。
阅读全文