// 树结构数据
let tree = [
{
name: '1',
children: [
{ name: '1-1' },
{ name: '1-2' }
]
},
{
name: '2',
children: [
{ name: '2-1' },
{ name: '2-2' }
]
}
]
// 搜索值
let val = '-2'
// 遍历
let loop = function (list) {
return list.filter(item => {
let childrenL = 0 // 子节点数量
if (item.children) {
item.children = loop(item.children)
childrenL = item.children.length
}
// 返回当前节点包含搜索值或者子节点包含搜索值的数据
return item.name.indexOf(val) > -1 || childrenL > 0
})
}
console.log(loop(tree))
/* 输出
[
{
name: '1',
children: [
{ name: '1-2' }
]
},
{
name: '2',
children: [
{ name: '2-2' }
]
}
]
*/
树结构搜索
于 2024-05-09 17:18:50 首次发布