const treeData = [ { title: '0-0', key: '0-0', flag: true, children: [ { title: '0-0-0', key: '0-0-0', flag: true, children: [ { title: '0-0-0-0', key: '0-0-0-0', flag: true }, { title: '0-0-0-1', key: '0-0-0-1', flag: false }, { title: '0-0-0-2', key: '0-0-0-2', flag: true } ], }, { title: '0-0-1', key: '0-0-1', flag: true, children: [ { title: '0-0-1-0', key: '0-0-1-0', flag: true }, { title: '0-0-1-1', key: '0-0-1-1', flag: true }, { title: '0-0-1-2', key: '0-0-1-2', flag: true } ], }, { title: '0-0-2', key: '0-0-2', flag: false, }, ], }, { title: '0-1', key: '0-1', flag: false, children: [ { title: '0-1-0-0', key: '0-1-0-0', flag: true }, { title: '0-1-0-1', key: '0-1-0-1', flag: true }, { title: '0-1-0-2', key: '0-1-0-2', flag: true } ], }, { title: '0-2', key: '0-2', flag: true }, ];
function fn(data) {
data = data.filter(item => {
if (item.children) item.children = fn(item.children);
return item.flag
})
return data
}
let arr = fn(treeData) console.log(treeData) console.log(arr)