摘要:多叉树的分析及实现好了,终于回到了第一篇文章提到的组织结构的多叉树实现,有了前两篇文章的基础,多叉树的实现也就变得简单了从后台拿到的原始数据形式为总部工程部工程部工程部工程部测试部测试部测试部生产部规划部市场部这是一个典型的多叉树结构,总部
js多叉树的分析及实现
好了,终于回到了第一篇文章提到的组织结构的多叉树实现,有了前两篇文章的基础,多叉树的实现也就变得简单了
从后台拿到的原始数据形式为
const data = [ {"orgId":1,"orgName":"总部","parentId":0}, {"orgId":6,"orgName":"工程部","parentId":1}, {"orgId":7,"orgName":"工程部1","parentId":6}, {"orgId":8,"orgName":"工程部2","parentId":7}, {"orgId":9,"orgName":"工程部3","parentId":8}, {"orgId":10,"orgName":"测试部","parentId":1}, {"orgId":11,"orgName":"测试部1","parentId":10}, {"orgId":12,"orgName":"测试部2","parentId":11}, {"orgId":13,"orgName":"生产部","parentId":1}, {"orgId":14,"orgName":"规划部","parentId":1}, {"orgId":15,"orgName":"市场部","parentId":1}, ];
这是一个典型的多叉树结构,总部直接下级单位有工程部,测试部,生产部,规划部,市场部;其中工程部和测试部又有下级部门...
要求转换成的数据格式是
const json={ 总部 : { 工程部 : { 工程部1 : { 工程部1 : { }, }, }, 测试部 : { 测试部1 : { }, 测试部2 : { } }, 销售部 : { 销售部1 : { }, 销售部2 : { } }, 售后部 : { } } };
需要的数据形式为json嵌套对象,而且每个对象只保留属性名,所以分两步进行操作
1.利用原始数据生成组织机构列表树,利用递归判断id并生成多叉树
2.在第一步生成多叉树的过程中同时生成所需对象,使之符合需要的数据形式
代码如下
function MT(){ var OBJ={}; var CURRENT; var TEM; this.root=null; this.Node=function(e){ this.orgId=e.orgId; this.orgName=e.orgName; this.parentId=e.parentId; this.children=[]; } this.insert=function(e){ CURRENT=OBJ; function recursiveAdd(tem,e){ if(tem.orgId==e.parentId){ tem.children.push(e); CURRENT=CURRENT[tem.orgName]; CURRENT[e.orgName]={}; }else{ for(var i=0;i需要注意的几点:
生成树结构首先找出根节点,并递归添加其他子节点
代码中的CURRENT=CURRENT[tem.orgName],CURRENT[e.orgName]={};用来生成嵌套对象,这里涉及数据类型的指向,请看以下示例代码
var Ele = {}; function nested(element){ element["key"] = {}; element = element["key"]; element["key1"] = {}; element = element["key1"]; } nested(Ele); console.log(Ele);以上,给有需要的朋友,也为自己做一个记录^ ^
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/81404.html
摘要:二叉树的层级遍历创建一个二叉树输出函数先访问左子树,再访问自身,再访问右子树先访问自身,再访问左子树,再访问右子树先访问左子树,再访问右子树再访问自身层级遍历多叉树的层级遍历创建一个多叉树输出函数递归遍历每个节点方法方法方法层级遍历每 1、二叉树的层级遍历 创建一个二叉树 class Binary{ constructor(data,left,right){ this.data...
摘要:经过分析和思考,我决定不采用递归的方式来编写树形数据的处理,最终选用来维护树节点之间的关系。以权限树为例,做一个树形数据工具类的设计。 1.简介 在一些管理系统中一般都会用到,会用到一些树形数据,例如部门组织以及权限等数据,都得生成树形数据,需要写一些树形数据生成工具,一般使用递归的方式,性能低下还可能会导致爆栈。经过分析和思考,我决定不采用递归的方式来编写树形数据的处理,最...
阅读 930·2019-08-30 15:55
阅读 503·2019-08-26 13:56
阅读 2037·2019-08-26 12:23
阅读 3275·2019-08-26 10:29
阅读 580·2019-08-26 10:17
阅读 2814·2019-08-23 16:53
阅读 651·2019-08-23 15:55
阅读 2726·2019-08-23 14:25