JS 树形结构 根据子节点找到所有上级

需求:是根据子菜单找到所有他上级菜单 进行面包屑的回显

要求子节点里包含父级id  

代码如下:

    parentTree(arr, id) {   //arr 所有的树数据 id 某个子节点的id 
      var temp = [];
      var callback = function (nowArr, id) {     //先定义个函数寻找子节点位置 找到后 再找改节点父元素位置 以此类推
        for (var i = 0; i < nowArr.length; i++) {
          var item = nowArr[i];
          if (item.id === id) {
            temp.push(item);
            callback(arr, item.pid);     //pid 父级ID
            break;
          } else {
            if (item.menus) {
              callback(item.menus, id); //menus 子节点字段名称
            }
          }
        }
      };
      callback(arr, id);
      return temp;  //最后返回
    },
posted @ 2021-07-30 15:01  Jackie-Song  阅读(2860)  评论(0编辑  收藏  举报