概述

在工作中,很多时候会遇到树组织,但是从数据库里面查询出来的结果是一个简单的树组织,这就需要将简单的树组织转换为标准的树组织,以便使用,本文分享一个简单的function来实现简单到标准的转换。

简单和标准树组织数据

1、简单树组织

简单的树组织包含id,pid,attr等信息,是一个平铺的结构,如:

[{id:"0",pid:"-1",name:"name0"}, {id:"01",pid:"0",name:"name01"}, {id:"02",pid:"0",name:"name02"},{id:"011",pid:"01",name:"name011"},...
]

2、标准的树组织

标准的树组织跟简单的树组织的区别就是包含层级结构,如:

[{id:"0",pid:"-1",name:"name0",children:[{id:"01",pid:"0",name:"name01",children:[{id:"011",pid:"01",name:"name011"},...]}, {id:"02",pid:"0",name:"name02"},...]},...
]


转换函数

        _transform2NormalData:function (sNodes){var scope = this;var i,l;var key = scope.data.simpleData.idKey,//"id"parentKey=scope.data.simpleData.pIdKey,//"pid"childKey=scope.data.childKey;//"children"if (!key || key=="" || !sNodes) return [];if (sNodes.length>0) {var r = [];var tmpMap = [];for (i=0, l=sNodes.length; i<l; i++) {tmpMap[sNodes[i][key]] = sNodes[i];}for (i=0, l=sNodes.length; i<l; i++) {if (tmpMap[sNodes[i][parentKey]] && sNodes[i][key] != sNodes[i][parentKey]) {if (!tmpMap[sNodes[i][parentKey]][childKey])tmpMap[sNodes[i][parentKey]][childKey] = [];tmpMap[sNodes[i][parentKey]][childKey].push(sNodes[i]);}else {r.push(sNodes[i]);}}return r;}else {return [sNodes];}}

---------------------------------------------------------------------------------------------------------------

技术博客

http://blog.csdn.NET/gisshixisheng

在线教程

http://edu.csdn.Net/course/detail/799
Github

https://github.com/lzugis/

联系方式

q       q:1004740957

e-mail:niujp08@qq.com

公众号:lzugis15

Q Q 群:452117357(webgis)
             337469080(Android)

转载于:https://www.cnblogs.com/lzugis/p/6539761.html

简单树组织数据格式化为标准树组织数据相关推荐

  1. ztree 标准得json数据格式_Django+zTree构建组织架构树

    树,因其清晰明了的展现形式而被广泛的使用 日常的开发过程中我们需要经常与"树"打交道,例如公司的组织架构树.服务器的项目归属树,管理后台侧边树等等,本篇文章介绍关于树的两个内容 多 ...

  2. SAP MM 标准采购组织的分配对于寄售采购订单收货的影响

    SAP MM 标准采购组织的分配对于寄售采购订单收货的影响 PO 4100004022 是一个寄售的采购订单, 采购组织是CSAS, 工厂代码SZSP.采购信息记录也是有的, MIGO试图对该采购订单 ...

  3. 35家巨头科技公司联合组成元宇宙标准论坛组织

    Meta和其他34家科技公司本周签署了一项承诺,致力于创建一个开放且可互操作的元宇宙世界,但加密领域的主流声音并不信服. 上周二,35 家科技公司,其中包括Meta(前身为Facebook).微软.阿 ...

  4. 网络通信的标准化组织和常见标准

    [size=large] 网络通信的几个标准化组织和其制定的常见标准[/size] 为确保通信和网络设备有统一的标准,以下标准化组织发挥了重要的作用: 国际标准化组织(ISO) 国际通信联盟(ITU) ...

  5. 3GPP是个什么组织 为啥5G标准离不开它

    3GPP一直以来在人们心中是一个神秘的组织,很多用户对于它的理解和认知,说不清,道不明.最近关于5G网络的诸多报道,都陈述了"5G网络"的标准是由"3GPP"来 ...

  6. AcWing 蓝桥杯AB组辅导课 05、树状数组与线段树

    文章目录 前言 一.树状数组 1.1.树状数组知识点 1.2.树状数组代码模板 模板题:AcWing 1264. 动态求连续区间和 例题 例题1.AcWing 1265. 数星星[中等,信息学奥赛一本 ...

  7. 面试官:为什么MySQL的索引要使用B+树,而不是其它树?比如B树?

    点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 来源:https://dwz.cn/exC8JdQS InnoDB的一棵B+树可以存放多少行数 ...

  8. [转]B树(多向平衡查找树)详解

    B-树是对2-3树数据结构的扩展.它支持对保存在磁盘或者网络上的符号表进行外部查找,这些文件可能比我们以前考虑的输入要大的多(以前的输入能够保存在内存中). (B树和B+树是实现数据库的数据结构,一般 ...

  9. KD树详解及KD树最近邻算法

    参考:http://blog.csdn.net/app_12062011/article/details/51986805 http://www.cnblogs.com/snake-hand/arch ...

最新文章

  1. jpanel不使用jframe保存的图片为空_使用DataBinding还在为数据处理头疼?这篇文章帮你解决问题
  2. 让Windows Server 2008 + IIS 7+ ASP.NET 支持10万并发请求
  3. 思杰“个人云”翻开企业人本管理新篇章
  4. 怎样使用Debussy+ModelSim快速查看前仿真波形
  5. 替换字符串中指定的字符--随手源码
  6. CK11N对物料进行价格标记时,系统提示物料递归错误;物料的BOM里面勾选了“递归允许”。
  7. weex 打包apk
  8. POJ2112 Optimal Milking
  9. react前端显示图片_在react里怎么引用图片
  10. 【Python】输入任意个数元素并保存至列表
  11. C/C++工程师需要掌握哪些技能?他们的工资这么高,是有原因的!
  12. 用友u8怎么导出凭证_CASE11 用友U8导入期初档案凭证批量作废编辑自动现流(5/5)...
  13. C#第一课--hello world
  14. CSS从大图片上截取小图标的使用
  15. 浏览器自动打开html怎么办,浏览器自动弹出网页怎么处理?开机自动弹出垃圾网页如何解决?...
  16. 钱天财8.25黄金白银在线分析及黄金在线解套
  17. flex:1 代表了什么意思
  18. 后端使用SpringBoot和Jwt工具与Redis数据库+前端Vue Element Admin实现用户携带token的登录功能案例
  19. iOS中录屏库ReplayKit的详尽使用总结
  20. Markdown使用手册【基础篇】

热门文章

  1. 【微型计算机原理与接口技术】指令概述与标志寄存器
  2. 【jQuery笔记Part4】03-事件详解
  3. ubuntu(Linux)使用losetup创建虚拟磁盘(挂载,格式化虚拟磁盘,回环设备)
  4. linux 恢复与暂停进程
  5. web报表工具FineReport常用函数的用法总结(报表函数)
  6. 现代人必须掌握的成功学方法
  7. 编译自定义的主题theme
  8. 友商对于鸿蒙系统,谷歌新系统上线!鸿蒙面临生死线考验,华为喊话友商,被小米拒绝...
  9. 大学计算机张青答案,《大学计算机Ⅰ》实验报告实验一1
  10. java实现文件夹复制_Java实现文件夹复制