let arr=[{ title:'1', key:'1', type:0, children:[{ title:'1-1', key:'1-1', type:0, }] },{ title:'2', key:'2', type:0, children:[] },{ title:'3', key:'3', type:0, children:[{ title:'3-1', key:'3', type:0, }] },{ title:'4', key:'4', type:1, children:[] }] // 過濾出數組type==0的數據 let sul=that.recursiveFilter(arr,0)
/** * 遞歸過濾嵌套數組(樹形結構) * @param arr {Array}要過濾的原始數據 * @param type {Boolean} 你要過濾的關鍵詞 * */ recursiveFilter(arr,type){ let data=arr.filter(item=> item.type==type).map((item)=>{ item=Object.assign({},item) if(item.children){ //遞歸循環 item.children=that.recursiveFilter(item.children,type) } return item }) return data },