将扁平数据转换为树形数据的方法

简介: 将扁平数据转换为树形数据的方法

当遇到了好多扁平数据我们都无从下手?不知道如何处理?


家人们 无脑调用这个函数就好了


接口请求回来以后


调用这个函数传入实参就可以用啦~

// 树形菜单函数
function GetTreeData(data) {
  let TreeData = [];
  let map = new Map(); //存在id,对应所在的内存地址
  // console.log(map);
  let outputObj, pid;
  for (let i = 0; i < data.length; i++) {
    pid = data[i].pid;
    if (map.has(pid)) {
      //存在,将些信息,加入到对应id=pid的对象上的children
      if (!map.get(pid).children) map.get(pid).children = [];
      let obj = new Object(data[i]);
      map.get(pid).children.push(obj);
      map.set(data[i].id, obj);
      // console.log(map);
    } else if (!map.has(pid) && pid == 0) {
      //这里处理pid不存在,且pid 为0的处理,pid不存在,且不为0的,程序不考虑这种情况
      outputObj = new Object(data[i]);
      TreeData.push(outputObj);
      map.set(data[i].id, outputObj);
      // console.log(map);
    }
  }
  return TreeData;
}


输出效果

相关文章
|
6月前
|
JavaScript 前端开发 数据管理
扁平数据转树形结构,让数据管理更清晰
扁平数据转树形结构,让数据管理更清晰
|
JSON 数据格式
树形结构展示数据
树形结构展示数据
76 0
利用Map把一维数据转换成树结构
利用Map把一维数据转换成树结构
155 0
利用Map把一维数据转换成树结构
|
XML 存储 JSON
多叉树结合JavaScript树形组件实现无限级树形结构(一种构建多级有序树形结构JSON(或XML)数据源的方法)
如何将数据库中的层次数据转换成对应的层次结构的JSON或XML格式的字符串,返回给客户端的JavaScript树形组件?这就是我们要解决的关键技术问题。
多叉树结合JavaScript树形组件实现无限级树形结构(一种构建多级有序树形结构JSON(或XML)数据源的方法)
js 如何将线性数据转化为树状数据
js 如何将线性数据转化为树状数据
js 如何将线性数据转化为树状数据
数据结构之数据、数据元素、数据项、数据对象之间的关系
本文讲解数据结构之数据、数据元素、数据项、数据对象之间的关系
1122 0
数据结构之数据、数据元素、数据项、数据对象之间的关系
树状数据怎样扁平化处理?
树状数据怎样扁平化处理的方式
389 0
|
知识图谱
欧几里德结构数据与 非欧几里德结构数据
欧几里德结构数据与 非欧几里德结构数据
531 0
欧几里德结构数据与 非欧几里德结构数据
|
存储 BI 数据处理
如何用报表工具实现树状层级结构的填报表
数据填报中,表头项如果是科目或者地区等有层级关系的维度数据,常常会希望表头能以树状形式展示,以便用户能更直观的理解填报业务,方便录入数据,点击 <a href="http://c.raqsoft.com.
1268 0