需求是我需要把后端给的一个数据整个集合,进行一个条件筛选,已经删除的数据放一个集合渲染页面,没有删除的数据放一个页面。。
思路:我们先对其封装一个递归函数,对传进来的集合参数进行遍历,条件筛选,多层解构,
向集合添加符合条件元素,最后返回其即可
let abc = [{ id: 1, isdeleted: 1, children: [{ id: 11, isdeleted: 0 }, { id: 12, isdeleted: 1 }] }, { id: 2, isdeleted: 0 },
{ id: 3, isdeleted: 0, children: [{ id: 13, isdeleted: 0 }, { id: 14, isdeleted: 1 }] }]
function setHandleListb(list) {
let arr = []//空数组放已经删除集合
list.forEach(item => {
//isdeleted=1为已删除状态
if (item.isdeleted == 1) {
arr.push(item)
// console.log("arr", arr);
} else {
// console.log("10", item);
if (item.children) {
// console.log("11", item.children);
let chirlList = setHandleListb(item.children)
arr.push(...chirlList)
// console.log("chirlList", arr);
}
}
})
return arr
}
setHandleListb(abc)