扁平数据转化成树形结构 条件子级Id 父级Pid

198 阅读1分钟

扁平数据转化成树形结构 条件子级Id 父级Pid

    // 扁平数据转化成树形结构 条件子级Id 父级Pid
    toTree(data, id, pid, Children = "Children") {
      // eslint-disable-next-line space-before-function-paren
      data.forEach(function(item) {
        delete item[Children];
      });
      var map = {};
      // eslint-disable-next-line space-before-function-paren
      data.forEach(function(item) {
        map[item[id]] = item;
      });
      var val = [];
      // eslint-disable-next-line space-before-function-paren
      data.forEach(function(item) {
        var parent = map[item[pid]];
        if (parent) {
          (parent[Children] || (parent[Children] = [])).push(item);
        } else {
          val.push(item);
        }
      });
      return val;
    },