问题描述想实现一个递归,但是js基础比较差,不知道咋实现。。相关代码//请把代码文本粘贴到下方(请勿用图片代替代码)vararray=[{name:'测试',component:()=>import('@/views/setting/ManageList'),meta:{title:'设备管理0',roles:[0,1,2,3,4]},children:[{component:()=>import('@/views/setting/ManageList'),meta:{title:'设备管理1',roles:[0,1]}},{component:()=>import('@/views/setting/ManageList'),meta:{title:'设备管理2',roles:[0]}}]}]你期待的结果是什么?题目描述希望最终得到的数据如下:vararray=[{name:'测试',component:()=>import('@/views/setting/ManageList'),meta:{title:'设备管理0',roles:[0,1,2,3,4]},children:[{component:()=>import('@/views/setting/ManageList'),meta:{title:'设备管理1',roles:[0,1]}}]}]functionfilterAsyncRouter(array,id){letres=[]array.filter(item=>{if(item.meta.roles.includes(id)){if(item.children){item.children=filterAsyncRouter(item.children,id)}res.push(item)}})console.log('res',res)}filterAsyncRouter(array,1);自己尝试写了下还是觉得不对。。可能表达的不太清楚,如果父节点有1,返回父节点,如果父节点跟子节点都有1,只需要返回有1的子节点。。没有1的子节点不需要返回~
沧海一幻觉
相关分类