前端js搜索树形结构数据
/**
*
* @param value 关键字
* @param arr 要过滤的数组
* @param key 过滤的key
* @returns []过滤的数组
*/
export function searchTree(value: string, arr: any[], key: string): any[] {
let newArr: any[] = []
arr.forEach((element) => {
if (element[key].indexOf(value) > -1) {
// 判断条件
newArr.push(element)
} else {
if (element.children && element.children.length > 0) {
let redata = searchTree(value, element.children, key)
if (redata && redata.length > 0) {
let obj = {
...element,
children: redata,
}
newArr.push(obj)
}
}
}
})
return newArr
}