流程:

  1. 建立新数组result
  2. 判断是否为数组,不是直接返回
  3. 建立标记对象,遍历数组,把id作为属性名,当前对象为值保存起来
  4. 遍历数组,获得父节点map[item.pid]
  5. 如果父节点存在,往父节点的children属性中push当前item
  6. 如果没有父节点,直接把当前item加入result
source = [{id: 1,pid: 0,name: 'body'}, {id: 2,pid: 1,name: 'title'}, {id: 3,pid: 2,name: 'div'}]function dd(data){if(!Array.isArray(data)){return data}let result=[]let map={}data.forEach(item=>{map[item.id]=item})data.forEach(item=>{let p=map[item.pid]if(p){(p.children||(p.children=[])).push(item)}else{result.push(item)}})return result}console.log(dd(source))

将js对象转化为树形结构相关推荐

  1. elementui树状菜单tree_vue.js+element-ui做出菜单树形结构

    这次给大家带来vue.js+element-ui做出菜单树形结构,vue.js+element-ui做出菜单树形结构的注意事项有哪些,下面就是实战案例,一起来看一下. 由于业务需要,要求实现树形菜单, ...

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

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

  3. 将数据库查询出来的数据转化成树形结构

    从数据库查询的每一条数据都包含id和fid字段,将获得的数据转换成树形结构 假设从数据库查询出来的数据对应的实体类: public class department {private int id;p ...

  4. js生成简单的树形结构_思维干货收藏,“决策树”一种可视化决策的简单方法...

    今天来介绍一种决策可视化的模型,作为质量人特别是在呈现质量问题解决和质量数据分析时都会应用到,这里通过网络我收集了下面这篇文章分享给大家,一起交流和学习,希望能给你带来帮助,同时分享你的建议和意见. ...

  5. JS 对象转化为数组

    上代码: let result = {'121332':'dedsdf','3434':'fgfsdf','3477':'dhff'};let resultArr = []; for(let item ...

  6. js使用广度优先给树形结构添加level

    const getStockTableColumns = () => {const columns = [{title: '',children: [{title: '基础信息',childre ...

  7. 组织架构树形结构布局

    实现组织架构的头部内容 首先实现头部的结构,采用element的行列布局 <!-- 实现页面的基本布局 --> <el-card class="tree-card" ...

  8. Vue人资中台--公司组织架构(树形结构)

    组织架构树形结构布局 目标:使用element-UI组件布局组织架构的基本布局 认识组织架构 组织架构产品prd 一个企业的组织架构是该企业的灵魂,组织架构多常采用树形金字塔式结构,本章节,我们布局出 ...

  9. 人资项目day06-组织架构树形结构布局

    使用element-UI组件布局组织架构的基本布局 认识组织架构 组织架构产品prd 一个企业的组织架构是该企业的灵魂,组织架构多常采用树形金字塔式结构,本章节,我们布局出页面的基本结构 实现组织架构 ...

最新文章

  1. 【Android View事件分发机制】关于拦截事件的注意点
  2. java、前端、php、asp.net开发资源分享(视频教程,源码,项目)
  3. 关于MATLAB2014b不能并行计算的原因及解决方法
  4. MessageDAL
  5. 网络合作伙伴通信协议指南:NETWORK ASSOCIATES GUIDE TO COMMUNICATIONS PROTOCOLS
  6. 卸载各类顽固程序时的六个秘密小技巧
  7. 如何安装以及配置jdk8的环境变量(建议收藏)
  8. 如何对 Oracle 数据泵(expdp/impdp) 进行 debug
  9. 华为悦盒E6108无线投屏-机顶盒连接wifi-我的盒子-DLNA-手机视频有TV标识-点击TV标识
  10. bzoj 1709: [Usaco2007 Oct]Super Paintball超级弹珠
  11. 企业内部短信模板大全分析
  12. AppWeb认证绕过漏洞(CVE-2018-8715)
  13. android c++服务器端,c++服务器与android客户端进行文件传输功能的实现
  14. 错误:80040154 没有注册类 的问题
  15. 量子力学随机矩阵理论
  16. IO缓冲(buffer)和高速缓存(cache)
  17. yml和properties的区别
  18. Android秀翻天的操作——使用协程进行网络请求
  19. 怎么做到new String(abc) == new String(abc)双等号为true呢?不是使用equals哦
  20. 花了三年时间开发的四轴运动控制卡,可以替代mcx314运动控制IC

热门文章

  1. 基于matlab 系统仿真学报,基于MATLAB/Simulink的混合动力汽车正向仿真软件的开发...
  2. matlab编辑rayfile光源文件,rayfile网盘功能详解 rayfile网盘安装步骤及安装注意事项...
  3. java实验类与对象_【实验课件】上机实践2  类与对象
  4. 计算机应用第7章在线测试,《计算机应用基础》第07章在线测试
  5. Java实现文件复制
  6. Swagger 属性名 FastJson支持,@ApiModelProperty无法序列化
  7. mysql导出数据不锁表_mysqldump锁表出错及解决方法
  8. [******] 堆排序
  9. CSE 110: Principles of Programming Languages
  10. SIP对话、事务详解