将平铺的数组变成树结构 避免多次循环嵌套 避免递归 new Map()使用知多少
创始人
2024-11-14 21:06:45
0

Set 和 Map 数据结构

背景

偶然看到一个需求就是需要将一个平铺的树状结构,通过特定的字段要求改变成树状结构,然后最开始的想法就是循环套循环,就是通过递归来,这次尝试着用了map来实现

前提

一个由多个对象组成的数组结构, 每个都有字段 parentId ,id
当这个对象的parentId为0的时候则为第一级 当这个对象的parentId等于另外一个对象id的时候就表明 这个对象是那个对象的子集,并且存放在subs中, 这个subs是原始对象中没有的key

实现

// 假如有个list // 首先将这个list转换成map格式                 const map = new Map();                 for (let i = 0; i < data.length; i++) {                     map.set(data[i].id, data[i]);                 } // 定义一个数组(最终需要使用到的树结构的数组)                 const dataList = [];                 const _this = this;                 list.forEach(item => {                     if (item.parentId  === 0) {                         dataList.push(item);                     } else {                         const upperObj = map.get(item.parentId);                         if (upperObj) {                             if (!upperObj.subs) {                                 _this.$set(upperObj, 'subs', []);                             }                             upperObj.subs.push(item);                         }                     }                 }); // 最终得到的 dataList 就是我们要使用到的树状结构的集合 

上一篇:数据库相关

下一篇:区块链之智能合约

相关内容

热门资讯

重大通报,牛牛房卡哪里有卖的钻... 钻石大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:332900...
两秒就懂!炸金花房卡如何购买,... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:71319951许多玩家在游戏中会购买房卡来享...
房卡必备教程“购买金花房卡联系... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房卡来享...
头条推荐!金花房卡代理零售新八... 新八戒房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 3、根据...
头条推荐!牛牛房卡制作链接九天... 头条推荐!牛牛房卡制作链接九天大厅/房卡最便宜的中心九天大厅是一款非常受欢迎的游戏,咨询房/卡添加微...
科技实测!金花房卡出售新海贝大... 微信游戏中心:新海贝大厅/新神兽房卡在哪里买打开微信,添加客服微信【88355042】,进入游戏中心...
正规平台有哪些,牛牛房卡怎么获... 蝴蝶大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:332900...
微信牛牛房卡链接在哪买的/新圣... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:33903369许多玩家在游戏中会购买房卡来享受...
正规平台有哪些,游戏推荐牛牛房... 正规平台有哪些,游戏推荐牛牛房卡出售大众互娱/微信小游戏充值房卡大众互娱是一款非常受欢迎的游戏,咨询...
正版授权!游戏推荐斗牛房卡出售... 微信游戏中心:精卫大厅房卡在哪里买打开微信,添加客服微信【88355042】,进入游戏中心或相关小程...
两秒就懂!在哪里买斗牛微信房卡... 斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:66336574许多玩家在游戏中会购买房卡来享受...
终于找到“微信金花群房卡是怎么... 新蓝鲸是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来享...
科技实测!金花房卡代理零售火神... 火神大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:332900...
正版授权!金花房卡批发新鸿狐大... 正版授权!金花房卡批发新鸿狐大厅/随意玩/房卡哪家便宜Sa9Ix苹果iPhone 17手机即将进入量...
头条推荐!金花房卡专卖店毛豆互... 您好!微信毛豆互娱大厅链接获取房卡可以通过以下几种方式购买: 1.微信渠道:(毛豆互娱)大厅介绍:...
推荐一款!游戏推荐斗牛房卡出售... 乐乐堂房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 3、根据...
微信里面玩炸金花房卡在哪买/微... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:55051770许多玩家在游戏中会购买房卡来享...
玩家攻略,金花房卡如何购买熊猫... 玩家攻略,金花房卡如何购买熊猫大厅/微信链接房卡价格一览表熊猫大厅是一款非常受欢迎的游戏,咨询房/卡...
IA解析/金花房卡批发价新全游... 今 日消息,新全游/飞鹰互娱房卡添加微信33549083 苹果今日发布了 iOS 16.1 正式版更...
ia攻略/金花房卡制作链接逍遥... 逍遥大厅房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 3、根...