当前位置 博文首页 > 程序员石磊:js 递归获取子节点所有父节点,深度遍历获取第一个

    程序员石磊:js 递归获取子节点所有父节点,深度遍历获取第一个

    作者:[db:作者] 时间:2021-08-08 19:23

    前端需求。

    • 递归
    • 深度优先遍历算法
    // 查找一个节点的所有父节点
     familyTree (arr1, id) {
          var temp = []
          var forFn = function (arr, id) {
            for (var i = 0; i < arr.length; i++) {
              var item = arr[i]
              if (item.id === id) {
                temp.push(item)
                forFn(arr1, item.pid)
                break
              } else {
                if (item.children) {
                  forFn(item.children, id)
                }
              }
            }
          }
          forFn(arr1, id)
          return temp
        },
        // 查找一个树多有第一个节点,深度遍历
        getFirstNode (tree) {
          var temp = []
          var forFn = function (arr) {
            if (arr && arr.length > 0) {
              temp.push(arr[0])
              if (arr[0].children) {
                forFn(arr[0].children)
              }
            }
          }
          forFn(tree)
          return temp
        }
    
    

    在这里插入图片描述

    cs