树形结构递归处理函数

// 封装递归方法
export function tranListToTreeDate(list, currentId) {// 创建一个数组存放结果const res = []list.forEach(item => {if (item.pid === currentId) {// 递归部分const children = tranListToTreeDate(list, item.id)// 如果找到, 就放入当前 children 中// 否则停止if (children.length > 0) {item.children = children}res.push(item)}})return res
}

使用说明
list 为扁平数据数组
currentId 为父节点ID pid ===父节点ID 根据自己业务需求修改即可

属性数据扁平处理

/转结构(list就是你要转的树状数据)treeToList(list) {let res = []for (const item of list) {const { children, ...i } = itemif (children && children.length) {res = res.concat(this.treeToList(children))}res.push(i)}return res}
//查看数据是否转换成功const treeList = this.treeToList(this.treeData)console.log('树状结构转扁平结构', treeList)   

el-tree 扁平数据 树形结构递归处理相关推荐

  1. 扁平和树形结构的几种互转

    后端有时会返回如下扁平数组: [{id: '01',name: '衣服',pid: '0',},{id: '02',name: '裤子',pid: '0',},{id: '03',name: '鞋子' ...

  2. 树形结构递归_递归和匿名函数

    戳上面的蓝字关注我,有干货哦! ❝ 编程语言中,函数Func(Type a,--)直接或间接调用函数本身,则该函数称为递归函数. ❞ 模拟实现树形结构的遍历 比如:我要遍历下图sublime_pyth ...

  3. tree命令-以树形结构显示目录下的内容

    一.命令详解 1.1[功能说明] tree命令功能是以树形结构列出指定目录下的所有内容,包括所有文件.子目录及子目录里的目录和文件. 1.2 [语法格式] [root@7bfe451a2fe1:~]# ...

  4. 树形结构递归初始化(父节点,统计字段等)

    文章目录 1.核心思想: 2.核心方法实现: 3.完整代码如下 3.1. 树形实体 3.2. 完整操作 1.核心思想: 1.先将每个节点按层级进行分组成map,并记录最大层级: 2.层级自下而上的递归 ...

  5. Linux tree命令以树形结构显示文件目录结构

    我用的是阿里云服务器,CentOS7,默认没有tree这个命令,需要安装,用下面的命令就可以安装: sudo yum install tree 怎么样使用tree这个命令 其实有个非常简单的办法,就是 ...

  6. JavaScript中的扁平化数据转换为树形结构、树形结构扁平化数据

    1. 扁平化数据 ---- > 树形结构 1.1 第一种数据类型 原始数据只有id和pId相互关联 let data = [{ id: 639, name: "商品管理", ...

  7. Java学习笔记<十六>(树形结构存储)

    1.树形结构的介绍 * 树形结构简介  * 树形结构是一种非线性结构,存储的是"一对多的"关系的数据元素的集合  *  * 树形结构的相关术语:  * 节点(Node):使用树结构 ...

  8. 非线性数据结构之树形结构

      树形结构是一层次的嵌套结构. 一个树形结构的外层和内层有相似的结构, 所以这种结构多可以递归的表示.经典数据结构中的各种树状图是一种典型的树形结构:一颗树可以简单的表示为根, 左子树, 右子树. ...

  9. 关于el-tree树形结构的理解

    根据数据结构可划分为两种方式进行树形构建.特别地,还有一种节点可选形式. (1)数据data是一个由多个对象组成的数组,对象含有children属性(里面是多个对象组成的数组) 获取树形结构的数据da ...

最新文章

  1. 如何在StackOverflow上获得第一个标签徽章-以及为什么它很重要。
  2. SpringBoot中使用Thymeleaf常用功能(三):测试Thymeleaf循环取数据
  3. AppCompatActivity实现全屏的问题
  4. 飘逸的python - hack输出流便于调试
  5. cloudera-quickstart-vm-5.13.0-0-virtualbox 中文显示乱码
  6. 浮动的清除 -- 四种方法
  7. matlab 矩阵jocobi迭代_计算方法实验指导书1 -
  8. 老路MBA商学课|第003课:沉没成本|因为来都来了,所以将错就错
  9. AutoPatch java_Android热更新九:Robust热更新原理
  10. 十道解分式方程及答案_100道八年级解分式方程练习题(带答案)
  11. Web大学生网页成品——英雄联盟LOL游戏网站制作与实现(HTML+CSS+JS)
  12. 你如何理解目前市面上流行的贷款软件?
  13. 电路中的VDD,DVDD,AVDD,VCC,AFVDD,DOVDD,IOVDD的区别,
  14. CFS调度器负载计算
  15. 艾美捷A型CpG DNA, 人/小鼠应用和化学性质说明
  16. 计算机网络篇—《自顶向下方法》学习笔记
  17. Laravel开发系列四:安装JetStream
  18. test STM32F407 ETH RMII
  19. ACM班×姚班,计算机“黄金一代”迈进巅峰之门
  20. Android 常用限定符

热门文章

  1. LA@分块矩阵@初等变换@初等矩阵#逆矩阵计算@初等变换法
  2. eclipse 2021-09版本汉化--英化
  3. npm ERR! errno ECONNRESET npm ERR! network This is a problem related to network connectivity.解决方法和步骤
  4. 4.FTP服务配置与原理
  5. 这年头,能坐上火箭的东西不多啊 Java版本号算一个
  6. 计算机DCS三级体系结构组成,DCS系统原理和结构.ppt
  7. 从万达体育和快手合作看后疫情时代体育赛事产业的变局
  8. 关于NPS,看这一篇文章就够了
  9. 新增数据并发处理,避免重复数据插入
  10. Web 安全:PKI 扫盲