使用递归过滤数组中不合法的项目
/*
过滤数组中不合法的项目
@parmes{Array} ary
@parmes return 过滤后的数组
*/
let recurData = (arr) => {
//过滤数组中合法的值用一个变量接收。
let tempArr = arr.filter(item => !!item.isFolder);
console.log(tempArr);
//循环合法的数组,
for (let item of tempArr) {
//判断合法数组是否还有children项
if (item.children && item.children.length) {
//给当前合法的子向赋值继续递归当前方法
item.children = recurData(item.children)
}
}
return tempArr
}
let json = [
{
id: 1, isFolder: 1, children: [
{ id: '1-2', isFolder: 0 },
{ id: '1-2', isFolder: 1,
children:[
{ id: '1-3', isFolder: 0 },
{ id: '1-3', isFolder: 1 },
{ id: '1-3', isFolder: 0},
{ id: '1-3', isFolder: 1},
]
},
{ id: '1-2', isFolder: 0 },
]
},
{ id: 2, isFolder: 0 },
{ id: 3, isFolder: 1,
children:[]
},
{ id: 4, isFolder: 0 },
{ id: 5, isFolder: 1 },
]
let result = recurData(json)
console.log(JSON.stringify(result))