数据转换为树结构数据//---通过一个id回显下拉树数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//数据转换为树结构数据
 
TreeStructure(data) {
  let result = [];
  if (!Array.isArray(data)) {
    return result;
  }
  data.forEach(item => {
    delete item.children;
  });
  let map = {};
  data.forEach(item => {
    map[item.id] = item;
  });
  data.forEach(item => {
    let parent = map[item.parentId];
    if (parent) {
      (parent.children || (parent.children = [])).push(item);
    } else {
      result.push(item);
    }
  });
  return {
    result
  };
},<br>
// 通过一个id回显下拉树数据
 
findFullId(childrenArr, val) {
  let out = false; //定义一个标识(是否找到对应的id)
  let bg = 0; //定义一个标杆(标识循环到当前数组的第几条)
  for (let item of childrenArr) {
    if (item.id === val) {
      //判断所在数组(层级),是否有与之匹配的id
      arr.push(item.id); //存在则返回其id
      out = true; //存在就将标识设置为true
      return; //递归出口(出口1)
    } else if (
      //判断id不匹配的层级是否具有下级目录(children)
      item.children &&
      item.children.length > 0
    ) {
      arr.push(item.id);
      findFullId(item.children); //存在下级目录就将下一级目录回调
    }
    bg++;
    if (out) return; //如果找到对应的id 就执行返回 (出口2)
    if (bg === childrenArr.length && arr && arr.length > 0) {
      arr = []; //如果在最后一个数组对象都没有找到对应ID 那么就清空数组
    }
  }
  return arr;
},

  

posted @   想吃水煮麻辣鱼  阅读(72)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示