怎么把这个data1数组改造成data2数组,相当于过滤其中isShow=false的对象?-灵析社区

我买了30万的鞋子

let data1=[ { isShow:true, children:[ { isShow:true, nodeName:'天天下级文件夹', children:[ { isShow:true, nodeName:'天天下下级文件夹', children:[] }, { isShow:false, nodeName:'天天下下级文件夹2', children:[] }, ] }, { isShow:false, nodeName:'lala', children:[] } ], nodeName:'天天文件夹', }, { isShow:true, nodeName:'一样', children:[] }, { isShow:false, nodeName:'不一样', children:[] } ] 想要改造成以下这种 let data2=[ { isShow:true, children:[ { isShow:true, nodeName:'天天下级文件夹', children:[ { isShow:true, nodeName:'天天下下级文件夹', children:[] }, ] }, ], nodeName:'天天文件夹', }, { isShow:true, nodeName:'一样', children:[] }, ]

阅读量:16

点赞量:0

问AI
无情编码机器
用filter过滤,再加个递归就行了 function filterData(data){ return data.filter(item => { if(item.isShow) { return true; } else if(item.children && item.children.length) { const res = filterData(item.children); if(res.length){ item.children = res; return true; } } return false; }) }