树形结构关键字筛选-vue
在做权限管理的时候,权限是树型结构的数据,如果要做关键字筛选,就需要写递归去遍历所有元素并重新组合成新的树型结构的数据。
先看效果:
关键代码
// 角色关键字筛选 1
// 第一个参数是需要筛选的树型结构,第二个参数是需要筛选的关键字
findNode(treeData,key){
return treeData.filter((item)=>{
return this.filterItem(item,key);
});
},
// 角色关键字筛选 2
filterItem(item,key){
// 注意!!!:item.key的key是需要筛选的字段
if(item.key.indexOf(key) !== -1) return true
if(item.children){
item.children = item.children.filter((sonEle)=>{
return this.filterItem(sonEle,key);
})
if(item.children.length > 0){
return true;
}
}
return false;
},