js获取tree结构的子节点以及对应的父节点

744 阅读1分钟
// arr为整个tree的数据
// value是查询对应节点的条件
getUserInfo(value, arr) {
      let newarr = []
      arr.forEach(item => {
        if (item.children && item.children.length) {
        // 还有children继续递归往下找,直到最后一层
          const list = this.getUserInfo(value, item.children)
          const obj = {
            ...item,
            children: list
          }
          if (list && list.length) {
            newarr.push(obj)
          }
        } else {
          if (item.name.indexOf(value) > -1) {
            newarr.push(item)
          }
        }
      })
      return newarr
    },