通过子ID找到其所在的上一级父ID和其所有的fuID

9 篇文章 0 订阅
4 篇文章 0 订阅
该代码段展示了一个JavaScript函数,用于遍历树形结构数组,寻找指定ID及其所有父级ID,并将这些ID收集到结果数组中。输入参数包括一个树形结构数组和目标ID,输出是包含路径ID的数组和最后一个找到的父级ID。
摘要由CSDN通过智能技术生成
  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);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曹筱君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值