简单递归实现,树形结构 搜索名称过滤数据。前端过滤搜索
如下,后端返回的数据格式:
const data = [{
key:1,
title:"学生工作部",
children:[{
key:2,
title:"生活宣传科"
},
{
key:3,
title:"舞蹈部门",
children:[{
key:4,
title:"民族舞"
},
{
key:5,
title:"现代舞舞"
}]
}]
},
{
key:6,
title:"教务处",
children:[{
key:7,
title:"教学科",
children:[]
}]
}]
// value 搜索文字,arr数据源
searchTree(value,arr){
let newarr = [];
arr.forEach(element => {
if (element.title.indexOf(value) > -1) { // 判断条件
newarr.push(element);
} else {
if (element.children && element.children.length > 0) {
let redata = this.searchTree(value, element.children);
if (redata && redata.length > 0) {
let obj = {
...element,
children: redata
};
newarr.push(obj);
}
}
}
});
return newarr;
},