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 => item.flag) data.forEach(item => { if (item.children) item.children = fn(item.children) }) return data } let arr = fn(treeData) console.log(treeData) console.log(arr)
原文:https://www.cnblogs.com/wuqilang/p/14442905.html