选中的元素

数据结构大概:

data: [ {id:123321321, name: '哇哈哈' }, {id:123321321, name: '哇哈哈' , childrenList: [{id:888888, name: '起飞' }]}]

思路:

1、是否能在第一层找到选中的id,如果找到了,就开始递归该对象,直到找到最底层的子类

2、如果没有在第一层找到选中的id,开始递归该对象,直到找到匹配选中id的对象,而后执行第一步,找到最底层的子类

实现代码:

/*
* 第一步
* selectList  树选择控件选中的元素
*/let categoryList = []const findSonByRecursion = (selectList) => { // 递归树查找最底层的类目selectList.forEach((item) => {treeDataSource.forEach((tree) => {if (item.value === tree.id) {// 第一层就找到了hasChildrenList(tree); // 开始下渗查找最底层的类目} else {// 否则递归继续下渗查找if (tree.childrenList) {findChildrenList(tree.childrenList, item.value);}}});});};/*
* 第二步
*/const hasChildrenList = (tree) => { // 已经匹配上id的对象,找到该对象的最底层if (tree.childrenList) {tree.childrenList.forEach((item) => {if (item.childrenList) {hasChildrenList(item);} else {categoryList.push(item);}});} else {categoryList.push(tree);}};/*
* 第三步
*/const findChildrenList = (dataList, value) => {dataList.forEach((item) => {// childrenList 第一层就找到了if (item.id === value) {if (item.childrenList) {hasChildrenList(item); // 查找是否还有子集} else {categoryList.push(item);}} else if (item.childrenList) {// 否则继续下渗查找findChildrenList(item.childrenList, value);}});};

通过父级id 递归找到所有子类相关推荐

  1. php 根据父级id查出,php,_三级分类 like查询 查询到很多id 需要找到对应的父级id 并根据父级id组合 应该怎么根据父级id将数据组合在一起呢?,php - phpStudy...

    三级分类 like查询 查询到很多id 需要找到对应的父级id 并根据父级id组合 应该怎么根据父级id将数据组合在一起呢? 这是获取到的数据 父级id为parent_id Array ( [0] = ...

  2. 子标签获取父级Id值

    子标签获取父级id值 1.首先,通过子标签传递,使用"this": 2.function获取所传递的值: 代码如下 标签中(id = "show1") oncl ...

  3. 通过父级id获取到其下所有子级(无穷级)——Mysql函数实现

    [需求]某用户只能查看其自己信息及其下级信息,涉及通过该用户所在部门获取其下所有部门(多层)id集合. 步骤一:对数据库进行设置: set global log_bin_trust_function_ ...

  4. java ztree json_java 树形转换JSON 工具类 / 树形子父级菜单递归 JSON 格式

    实体类: package tree; import java.util.List; /** * *2018-11-30 */ public class Menu { // 菜单id private S ...

  5. vue如何获取tree当前选中的节点_vue中element-ui 树形控件-树节点的选择(选中当前节点,获取当前id并且获取其父级id)...

    出处: Element-ui官网给的方法 getCheckedKeys() { console.log(this.$refs.tree.getCheckedKeys()); }, 1 这种只有在所有子 ...

  6. antd树型选择控件选择父级_element的tree树形菜单回显、父级半勾选

    解决的问题: 1. 当拿到了后台的数据,使用id去渲染选中的节点时,如果父级id包含在id数组里,而此id下面的子节点只有部分选中的情况下,此父级id下面得所有子节点全部被选中了. 2. 当需要保存当 ...

  7. fastadmin 子级菜单展开合并,分类父级归纳

    效果如下: 这里踩过一个坑,fastadmin默认的展开合并预定义处理的变量是pid. 所以建表时父级id需要是pid: 当然不是pid也没关系,笔者这里是classify_id,多加一步处理一样能实 ...

  8. vue element-UI的树形结构,父级关联,返回数据反选的问题

    因为element-ui的树形结构是添加了父级的联动,没有办法单独取消,那么就有一个问题,比如说在做用户权限分配的时候,添加选择是没有问题的,选择自己要check的节点,通过下面这个方法可以将父级ID ...

  9. 调用父级方法_通信:找到任意组件实例的findComponents系列方法,5个终极方案

    已经介绍了两种组件间通信的方法:provide / inject 和 dispatch / broadcast.它们有各自的使用场景和局限,比如前者多用于子组件获取父组件的状态,后者常用于父子组件间通 ...

最新文章

  1. matlab对图像信号进行频谱分析及滤波,数字信号处理课程设计---应用 Matlab对信号进行频谱分析及滤波...
  2. table control 光标定位控制
  3. jquery选择器(转载)
  4. matlab绘制烟花,[原创]利用MATLAB燃放烟花(礼花)
  5. 微信开发必看,使用.Net Core 开发微信跨平台应用
  6. 22张图片倒叙霍金:我爱宇宙也爱这苦乐人生
  7. Opencv--从CalibrateCamera到SolvePnp(二)
  8. 一次难忘的 MTS 故障的排除过程
  9. Java BIO 聊天程序
  10. 被苹果摆了一道的高通,亮出了一张“小米”牌
  11. nginx 反向代理 转发请求时,有时好有时没反应,产生原因及解决
  12. 三维点云学习(4)5-DBSCNA python 复现-2-kd-_tree加速
  13. hdoj1116【欧拉回路】
  14. 由程序猿yyyy-MM-dd跨年Bug引发的深思
  15. secureCRT 连接虚拟机的时候连接失败
  16. linux波浪线是什么路径,波浪线符号(linux运维中特殊符号)
  17. CALayer和Retina显示屏的高分辨率的支持
  18. 【mediacodec】MediaRecorder--MediaCodec
  19. iOS-常见三种加密(MD5、非对称加密,对称加密)
  20. 完美解决!无法启动此程序,因为计算机中丢失libmysql.dll解决方案(详细版!)

热门文章

  1. 【原创】【SPI】SPI通信协议介绍
  2. Linux定时清理日志
  3. 简单常用的http压测工具
  4. 计算机大数据的前景方向_大数据十大发展方向!
  5. PCL——超体素(SuperVoxel)、超体聚类分割
  6. 手机APP开发:学JAVA转安卓APP开发是不是很容易?
  7. 安全认证宇宙之用户认证0x01
  8. 第二章 离散时间信号和系统的时域描述分析 2.2.2 线性时不变系统
  9. Java开发培训班该怎样选择?
  10. Dbeaver报错:The server time zone value ‘etd‘ is unrecognized