【js】已知id或label,在treeList中递归寻找对应的数据

item.id === id && item.label === label这一步给定一个能保证唯一的就行

findPid(list, id, label) {
  for(let item of list) {
    if(item.id === id && item.label === label) {
      return item
    }else if(item.hasOwnProperty('children') && item.children.length>0) {
      const result = this.findPid(item.children, id, label)
      if(result) {
        return result
      }
    }
  }
  return null	// 没找到返回null
},

举例调用:

const treeList = 
[
   {
     id: 0,
     label: '不限',
     checked: false,
     isIndeterminate: false,
     children: [],
   },
   {
     id: 1,
     label: '江苏省',
     checked: false,
     isIndeterminate: false,
     children: [
       {
         id: 0,
         label: '南京',
         children: [
           {
             id: 11,
             label: '秦淮区'
           }
         ]
       },
       {
         id: 1,
         label: '苏州',
       },
       {
         id: 2,
         label: '扬州',
       },
       {
         id: 3,
         label: '无锡',
       },
     ]
   },
   {
     id: 2,
     label: '河南省',
     checked: false,
     isIndeterminate: false,
     children: [
       {
         id: 4,
         label: '洛阳',
       },
       {
         id: 5,
         label: '信阳',
       },
     ]
   }
]

const result = findPid(treeList, '5', '信阳')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值