先来个函数注释 :

/**

* 将有父子关系的一维数组转换成树形结构(多维)数据

* console.log(JSON.stringify(setTreeData(data), null, 2));

* ============================================

* @param {*Array} data 需要遍历的一维数组

*/

再来具体的代码 :

function fnSetTreeData(data) {

var data = [...data];

var tree = data.filter((father) => {

var branchArr = data.filter((child) => {

if (father.id == child.parentId) child._hasParent = true;

return father.id == child.parentId;

// MARK 为什么这样写就报错 ?

// if (father.id == child.parentId) child._hasParent = true;

// return child._hasParent

});

if (branchArr.length > 0) father.children = branchArr;

return !father._hasParent;

});

// MARK 为什么在这里还得加一个过滤

tree = tree.filter((item) => {

return !item._hasParent;

})

return tree

}

console.log(JSON.stringify(fnSetTreeData(data), null, 2));

至于怎么解决 循环引用 的问题, 先用 sort 给数组排序后, 再在每次filter 中 计数++如何 ?

得给一个测试数据 :

var data = [

{ id: 40, parentId: 31, note: "的萨达是" },

{ id: 20, parentId: 11, note: "的萨达是" },

{ id: 22, parentId: 20, note: "dsadas" },

{ id: 12, parentId: null, note: "dsadasad萨达s" },

{ id: 11, parentId: undefined, note: "dqwds" },

{ id: 24, parentId: 22, note: "搜索" },

{ id: 34, parentId: 22, note: "搜索" }

];

python画父子关系图_将有父子关系的一维数组转换成树形结构(多维)数据相关推荐

  1. mysql 父子维,将有父子关系的一维数组转换成树形结构(多维)数据

    拉莫斯之舞 先来个函数注释 :/** * 将有父子关系的一维数组转换成树形结构(多维)数据 * console.log(JSON.stringify(setTreeData(data), null,  ...

  2. mysql的关系图_学会sql数据库关系图

    很久以前就知道微软的Petshop的很经典,昨天抽出时间去学习,一开始还真的不适应,什么成员资格,还真的看不太懂,运行petshop想从登陆学起,但是用户名和密码都不知道,后来发现有更注册的页面,自己 ...

  3. 怎么用python画饼状图_如何使用python的pygal模块画饼状图

    python是一个很有趣的语言,可以在命令行窗口运行.python中有很多功能强大的模块,这篇经验告诉你,如何使用python的pygal模块,画饼状图. 工具/原料 windows系统电脑一台 py ...

  4. python画太极八卦图_太极八卦图的正确画法

    PPT怎么画太极八卦图?之前我们介绍了好几种软件绘制太极八卦图的方法,今天我们来看看最常见的ppt中怎么画太极八卦图?下面分享详细的绘制过程和具体参数,需要的朋友可以参考下 1.新建一个PPT文档,设 ...

  5. python画太极八卦图_「太极八卦图」使用HTML+CSS画太极八卦图 - seo实验室

    太极八卦图 使用HTML+CSS画太极八卦图 基本语法 CSS基本语法格式:选择符{属性1:属性值1;属性2:属性值2;属性3:属性值3;......} 选择符:1.元素选择器:找到同名一系列 2.类 ...

  6. python画矩阵热图_如何用python的matplotlib绘制热图

    python使用matplotlib绘制热图 python常用的绘图库就是matplotlib,今天在给公司绘图时,偶然间发现matplotlib可以绘制热图,并且十分简洁,拿出来跟大家分享一下.(由 ...

  7. python画k线图_一步一步教你用Python画出专业的K线图

    漂亮的界面是量化程序的脸面,直观专业的界面能帮助我们了解股票的走势和形象地展示量化交易的结果.本文介绍如何使用matplotlib做出专业的K线图和展示各种技术指标: matplotlib是受MATL ...

  8. python画成绩正态分布图_终于搞清楚正态分布、指数分布到底是啥了!

    来源:可乐的数据分析之路作者:可乐 今天这篇文章接2个月以前的那篇文章 离散型随机变量的概率分布,继续来聊聊连续型随机变量的概率分布,以及用Python如何实现. 并非所有的数据都是连续的,根据数据类 ...

  9. python list转换成树形结构_列表数据(包含父节点关系)转化为树形结构

    今天开发遇到一个需求,就是把包含父子关系的数据转化为树形结构,这个需求来自我开发的一个功能,前端需要使用 Element 的级联选择器实现行业级联选择的功能. 列表数据类型 每条数据都列出了其父 id ...

最新文章

  1. 2022-2028年中国领带行业投资分析及前景预测报告
  2. asp.net Core多环境读取Json
  3. 预训练BERT学习笔记_Storm*Rage的博客
  4. JavaScript语言基础2
  5. Ubuntu 下载安装删除方式(自己常用,保持更新)
  6. git log 获取构建时间_Docker 运行 Jenkins 自动化构建 .NET Core 项目
  7. .NET种Json时对单引号和特殊字符串的处理
  8. Solr Facet(分片)
  9. CCF - 201403-3 - 命令行选项
  10. 一图详解清华北大各学科全球权威排名
  11. 同样是面试简历,为何你如此风骚!
  12. 一次cpu占用100%的故障解决
  13. wend计算机语言,计算机脚本语言开机显示当前页面发生
  14. BigGAN论文翻译与理解
  15. 10min快速回顾C++语法(六)函数专题
  16. android+下落+动画,完美起航-Android面试题之动画+事件处理篇
  17. Errors occurred during the build. Errors running builder 'JavaScript Validator'
  18. Createprocess 函数运行出错的原因和解决办法
  19. 搭建网校教育系统平台的四种方式
  20. 绩效考核的哲学窘境【人人都是产品经理:9030】

热门文章

  1. 如何自行分析定位SAP BSP错误
  2. 使用JavaScript遍历本地文件夹的文件
  3. 使用SAP Cloud for Customer Product OData服务读取产品主数据和其图片信息
  4. 使用PHP应用查询SAP HANA Express Edition里的数据
  5. Account mobile phone in CRM and C4C
  6. Netweaver的端口号和Spring boot内嵌的Tomcat端口
  7. Jerry Wang的CRM中间件培训 Middleware
  8. SAP Kyma(Extension Factory on SAP Cloud Platform)的架构简介
  9. ABAP Update Navigation Index
  10. class vue 添加图片_vue+element 添加图片组件