猿问

萌新!提问个js的问题,这种递归要怎么处理呢?十分感谢

问题描述
想实现一个递归,但是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的子节点不需要返回~
红糖糍粑
浏览 269回答 2
2回答

沧海一幻觉

functionloop(arr,idx){for(vari=0,newArr=[];i
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答