var a = [ //数组树型结构
{
dir:[],
no:'11111'
},
{
dir:[
{
dir:[],
no:'22221'
},
{
dir:[
{
dir:[],
no:'33332'
}
],
no:'22222'
}
],
no:'11112'
},
{
dir:[
{
dir:[
{
dir:[],
no:'33333'
}
],
no:'22223'
}
],
no:'11113'
},
{
dir:[
{
dir:[
{
dir:[
{
dir:[],
no:'44444'
}
],
no:'33334'
}
],
no:'22224'
}
],
no:'11114'
},
]
var b = '44444' //这就相当于从后台返回的id值
var vArr = [] //用来接收相关联父级id的集合
var str = ''
function shellArr(obj,id){
if(obj.length){
obj.forEach(item => {
if (item.dir && item.dir.length) {
if (item.dir.some(row => row.no === id)) { //这里利用some筛选子级有没有符合条件的,有就重新递归,没有就继续递归
vArr.push(item.no)
str = item.no
//重新递归
// shellArr(a,item.no)
}else{
//继续递归
shellArr(item.dir, id)
}
}else{return}
})
}
}
shellArr(a,b); //调用,传入a为要筛选的数组,传入b为后台返回的id值
console.log(vArr)
console.log(str);
通过子ID找到其所在的上一级父ID和其所有的fuID
最新推荐文章于 2022-06-07 16:51:44 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)