2020-07-17 通过递归获取节点的所有父级节点

以下是查找所有父级节点的方法

   getParentIds2(data, orgCode) {
      var ids = []
      const loop = function(json) {
        for (var obj of json) {
          if (obj.children !== undefined) {
            if (JSON.stringify(obj).match(orgCode)) {
              ids.push(obj.orgCode)
            }
            if (obj.orgCode !== orgCode) {
              loop(obj.children)
            } else {
              break
            }
          }
        }
      }
      loop(data)
      return ids
    }

还可以做一些修改,如:通过type来修改节点的属性

    getParentIds2 (data, id, type) {
      var ids = []
      let loop = function (json) {
        for (var obj of json) {
          if (obj.children) {
            if (JSON.stringify(obj).match(id)) {
              if (type === 0) {
                obj.color = '1'
              }
              ids.push(obj)
            }
            if (obj.id !== id) {
              loop(obj.children)
            } else {
              break
            }
          }
        }
      }
      loop(data)
      return ids
    },

你可能感兴趣的:(2020-07-17 通过递归获取节点的所有父级节点)