vue普通数组根据pid-Id匹配转树形结构

233 阅读1分钟

  toTree(data) {
   let result = [];
   if (!Array.isArray(data)) {
​    return result;
   }
   data.forEach(item => {
​    delete item.children;
   });
   let map = {};
   data.forEach(item => {
​    map[item.Id] = item;
   });
   data.forEach(item => {
​    let parent = map[item.ParentId];
​    if (parent) {
​     (parent.children || (parent.children = [])).push(item);
​    } else {
​     result.push(item);
​    }
   });
   return result;
  },