const arr = [{ id: 1, flag: true }, { id: 2, flag: false }, { id: 3, flag: false, children: [{ id: 4, flag: true }, { id: 5, flag: false }] }]
let arr1 = ''
function test(arr) {
return arr.filter((item) => {
if(item.flag){
return false
}
if (item.children) {
item.children = test(item.children)
}
return true
})
}
// function test2(arr) {
// arr.forEach((item, index) => {
// if (item.children) {
// test2(item.children)
// } else if(!item.flag){
// arr.splice(index,1)
// }
// })
// return arr
// }
arr1 = test(arr)
console.log(arr1)
// console.log(test2(arr))
// const arr = [
// { id: 1, flag: true },
// { id: 2, flag: false },
// { id: 3, flag: true, children: [
// { id: 4, flag: true },
// { id: 5, flag: false }
// ]}
// ];
// function filterFlagTrue(obj) {
// if (Array.isArray(obj)) {
// return obj.filter(item => {
// if (item.flag === false) {
// return false;
// }
// if (item.children) {
// item.children = filterFlagTrue(item.children);
// }
// return true;
// });
// }
// return obj;
// }
// const filteredArr = filterFlagTrue(arr);
// console.log(filteredArr);
console