【伸手党福利】js将父子关系树的对象转为json串【vue】

在antdesignvue当中,经常需要为树形选择器赋值DataSource,但是数据库里只会存储每条数据的父子关系,
这里提供一个简单封装的转换函数,以备调用。

/utils/useage.js当中:
注意:这里是将对象中的PARENT_IDID这两个字段建立父子关系,根据数据库传参请自行修改。


export function 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.PARENT_ID];
    if (parent) {
    
    
      (parent.children || (parent.children = [])).push(item);
    } else {
    
    
      result.push(item);
    }
  });
  return result;
}

vue当中调用:

import * as tools from "@/utils/useage.js"
let data = tools.toTree(tmp)
this.treeData = datak

猜你喜欢

转载自blog.csdn.net/wwppp987/article/details/110631953