树结构过滤

let demo = [
{
label: ‘1’,
value: ‘1’,
children: [
{
label: ‘11’,
value: ‘11’,
children: [
{
label: ‘111’,
value: ‘111’,
children: []
}
]
},
{
label: ‘12’,
value: ‘12’,
children: []
}
]
},
{
label: ‘2’,
value: ‘2’,
children: [
{
label: ‘21’,
value: ‘21’,
children: []
},
{
label: ‘111’,
value: ‘111’,
children: []
},
{
label: ‘22’,
value: ‘22’,
children: []
}
]
}
]
// 根据关键字过滤后的数据
const treeData2 = () => {
let mhres = filterNodeMethod(‘11’, demo)
return mhres
}
// 处理搜索后的数据返回树形结构
const filterNodeMethod = (value, arr) => {
if (!arr) {
return []
}
let newarr = []
arr.forEach((element) => {
console.log(element)
if (element.value.indexOf(value) > -1) {
const ab = filterNodeMethod(value, element.children)
const obj = {
…element,
children: ab
}
newarr.push(obj)
} else {
if (element.children && element.children.length > 0) {
const ab = filterNodeMethod(value, element.children)
const obj = {
…element,
children: ab
}
if (ab && ab.length > 0) {
newarr.push(obj)
}
}
}
})
return newarr
}
const change = () => {
console.log(treeData2(), ‘==========’)
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值