像这种数据格式如何递归

letarr=[{
role:'admin',
left:'fzz',
children:[{
role:'other',
right:'pdd',
children:[{
role:'admin'
}]
}]
}]
像这种数据格式如何递归返回一个数组,数据格式保持不变,但是取出里面role为admin的呢?(包括children里面的数据也要对role进行筛选)如果父级role不是admin,则该级和它的children都丢弃返回:
arr=[{
role:'admin',
left:'fzz',
children:[{
role:'admin',
right:'pdd'
}]
}]
青春有我
浏览 335回答 2
2回答

哔哔one

这需求改的和之前差的很大哦...这个答案是应之前的需求:返回所有admin,并且删除children中admin。getRoles(getData());functiongetRoles(data,role='admin'){letresArr=[];main(data);returnresArr;functionmain(data){if(data&&data.length){data.forEach((d,i)=>{if(d.role==='admin')resArr.push(data.splice(i,1));if(d.children&&d.children.length)main(d.children);});}}}functiongetData(){return[{role:'other',children:[{role:'admin',index:'1'},{role:'other'}]},{role:'admin',index:'2',children:[{role:'other',children:[{role:'admin',index:'3'}]}]}];}

米脂

letarr=[{role:'admin',left:'fzz',children:[{role:'other',right:'pdd',children:[{role:'admin'}]}]}]arr.find(function(x){returnx.role==='admin';})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript