SOURCE

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 命令行工具 X clear

                    
>
console