先看一下我们的数据结构

const data = [{id: 1,parentId: 0,name: "Node 1"},{id: 2,parentId: 1,name: "Node 2"},{id: 3,parentId: 1,name: "Node 3"},{id: 4,parentId: 2,name: "Node 4"},{id: 5,parentId: 2,name: "Node 5"}
];

这是一个标准的数据,带有父id和子id的数据

然后先把我们父级id等于0的数据过滤出来,因为父级id等于0的,证明这条数据已经没有父级了,这就是我们最外层的数据

const rootNodes = data.filter(node => node.parentId === 0);

现在我们的rootNodes的数据是parentId为0的数据

// 递归函数,用于返回给定父节点的所有子节点
function getChildren(parentNode, nodes) {return nodes.filter(node => node.parentId === parentNode.id).map(node => ({...node,children: getChildren(node, nodes)}));
}// 递归地生成树形结构
const tree = rootNodes.map(node => ({...node,// 这里的data是我们的全部数据children: getChildren(node, data)
}));

根据父id和子id处理树形的函数方法相关推荐

  1. vue/uniapp父组件获取子组件内的数据或方法

    1.父组件主动获取子组件中的数据和方法 在父组件里面通过: ``` this.$refs.childMethod.属性 this.$refs.childMethod.方法 ``` 在父组件中:(调用子 ...

  2. 递归查找所有子代id php,PHP递归函数:从父ID获取子ID

    我正在尝试使用以下代码从数组的父ID中获取所有孩子 $temp = array(); $temp[] = array("id"=>"2", "p ...

  3. js获取父元素、子元素、兄弟元素的方法

  4. Magento 获取分类的父分类和子分类

    在Magento目录的分类页面里,经常需要左侧导航获取到父分类和子分类,可以用以下方法: 打开app/your_package/your_themes/template/catalog/navigat ...

  5. vue组件,父传子、子传父、父调子、子调父简单理解总结

    总结目录 方法总结 子组件获取父组件变量(也可用父组件调用子组件中的方法传值) 父组件获取子组件变量(介绍两种方法) 父组件调用子组件中的方法 子组件调用父组件中方法(介绍两种方法) 方法总结 vue ...

  6. vue父页面调用子页面及方法及传参,鼠标光标定位

    项目场景: vue父页面调用子页面及方法 问题描述 vue中父界面调用子界面及方法时界面可以调用,但是调用方法的时候第一次报错,但是关掉界面再次重新打开就没问题了 原因分析: 在我之前添加鼠标指针定位 ...

  7. VMware找不到父磁盘 父虚拟磁盘在子虚拟磁盘创建之后被修改过。父虚拟磁盘的内容 ID 与子虚拟磁盘中对应的父内容 ID 不匹配

    在移动VMDK磁盘或者更改操作系统后,往往会出现"VMware找不到父磁盘 父虚拟磁盘在子虚拟磁盘创建之后被修改过.父虚拟磁盘的内容 ID 与子虚拟磁盘中对应的父内容 ID 不匹配" ...

  8. sql函数: 多级树状目录-根据父ID查询出所有的子ID

    一. 简介 比如说部门,有上级部门,是多级的,需要根据部门ID查询出所有该部门的子部门. 如果是2级,可以通过左连接联查同一张表即可. 但层级数不确定的情况下,就得用sql函数或者存储过程来实现了. ...

  9. mysql查询父id下所有子id,或者通过子id查询所有父id到最上层

    文章目录 前言 一.通过父id查询所有子id 1.数据库 2.查询语句 3.SQL解释 二.通过子id查询父id到根节点 1.查询语句 总结 前言 显示实现通过父id查询所有子id数据:第二部分同子i ...

最新文章

  1. 你听过Oracle中rownum用法吗?
  2. C# Levenshtein计算字符串的相似度
  3. 成功解决Runtime Error Selected KDE bandwidth is 0. Cannot estiam
  4. J-LINK序列号修改
  5. [BZOJ 2200][Usaco2011 Jan]道路和航线 spfa+SLF优化
  6. 开源Blog系统-欧式风格家具网站源码v1.5.4
  7. python设计模式1-单例模式
  8. hue是不是集成了oozie_在hue里面集成spark2,使用oozie的调度
  9. Axure高保真家政服务用户端app全局说明+家政服务员工移动端app+家政服务web端管理信息系统(订单管理+服务管理+报表统计+财务管理+营销管理+人员管理)
  10. 关于线性稳压芯片或类似的电路构成稳压电路发热严重的问题
  11. 认知升级三部曲(深度好文)
  12. speedoffice文档如何在方框内打钩
  13. bam文件读取_科学网—Pacbio Sequel两种bam文件解析 - 卢锐的博文
  14. pandas 选取行和列的方法
  15. python+openCV使用SIFT算法实现印章的总相似度检测
  16. Microsoft edge 小游戏及作弊方法
  17. C# Environment.StackTrace、StackFrame、Tirm的使用技巧
  18. Efficient Cinimatic Lighting(Jeremy Vickery)-2 CameraLight Based Composition
  19. ArcGIS教程:TIFF图像拼接及几何校正
  20. 苹果工具条_苹果提前推送首个 IOS 13 公测版| 附描述文件

热门文章

  1. 7-2 奥运排行榜(编程题)
  2. OneKeySetMat
  3. java 中 u表示啥意思_“U”到底是什么意思呢?
  4. BM200 系列隔离式安全栅 安科瑞 时丽花
  5. oppo android多大内存,OPPO R7 Plus的内存容量是多少?运存ram是多少?
  6. 数字图像处理第八章——图像压缩
  7. android高级UI之贝塞尔曲线<上>---基本概念、德卡斯特里奥算法
  8. eclipse tomcat mysql 环境搭建_web环境搭建,包括jdk安装,tomcat,mysql,eclipse安装
  9. 工厂人员定位系统如何实现工厂数字化转型
  10. 计算机初级证书怎么考