- 过滤要求:让数组元素中isShow为false的过滤掉,如果第一级的isShow为false,就直接不递归了
- 数据
let a = [{
id: 1,
isShow: false,
child: [{
id: 2,
isShow: true
}]
},
{
id: 3,
isShow: true,
child: [{
id: 4,
isShow: true
}, {
id: 5,
isShow: false
}]
}
]
const detailChild = (child) => {
if (!child) return []
return child.filter((item) => {
if (item.isShow) {
item.child = detailChild(item.child)
}
return item.isShow
})
}
let b = a.filter((item) => {
if (item.isShow && item.child && item.child.length) {
item.child = detailChild(item.child)
}
return item.isShow
})
console.log(b);