let keyWard = 'keyWard'
const filter = (nodes) => {
if (!(nodes && nodes.length)) {
return [];
}
let newChildren = [];
for (let node of nodes) {
let tempRes = filter(node.children);
// 不是叶子
if (!node.isLeaf) {
// 保留父节点的关键
if(tempRes.length > 0) {
newChildren.push({ ...node, children: tempRes });
}
} else {
if (node?.fullname.toString()?.indexOf(keyWard) > -1) {
newChildren.push({ ...node, children: filter(node) });
}
}
}
return newChildren;
}