JS递归树结构,根据子节点获取父节点

// orgCode 查找元素,list 树数据
findAreaCode(orgCode,list = [], result = []){
     for (let i = 0; i < list.length; i += 1) {
       console.log('*******', list[i].orgCode, '********')
       const item = list[i]
       // 找到目标
       if (item.orgCode === orgCode) {
         console.log('找到了',item.orgCode)
         // 加入到结果中
         result.push(item.orgCode)
         // 因为可能在第一层就找到了结果,直接返回当前结果
         if (result.length === 1) return result
         return true
       }
       // 如果存在下级节点,则继续遍历
       if (item.children) {
         // 预设本次是需要的节点并加入到最终结果result中
         result.push(item.orgCode)
         const find = this.findAreaCode(orgCode, item.children, result)
         // 如果不是false则表示找到了,直接return,结束递归
         if (find) {
           return result
         }
         // 到这里,意味着本次并不是需要的节点,则在result中移除
         result.pop()
       }
     }
     // 如果都走到这儿了,也就是本轮遍历children没找到,将此次标记为false
     return false
   }

this.findAreaCode(code,data)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容