一维数组转换成树形结构数组

达里尔
• 阅读 598

原文链接: https://juejin.cn/post/7020788438932684831 我自己用的时候需要

// 一维数组转换为二维数组树形结构
    newTree(data,idStr,pidStr){
      // idStr是每条数据的id
      // pidStr是每条数据的parentId,根据这个字段判断数据之间的父子关系
      let result = [];
      let map = {};
      if(!Array.isArray(data)){
        return result;
      }
      //清除之前的children
      data.forEach(item=>{
        delete item.children;
      });
      //将所有数据的id作为key键,添加到map对象中
      data.forEach(function(item){
        // 这块是要给title设置自定义显示内容
        item.title = item['id'] + ' - ' + item['name'];
        item.id = item['id'];
        map[item[idStr]] = item;
      });
      //处理数据以及层级问题
      data.forEach(function(item){
        const parent = map[item[pidStr]];
        if(parent){
          // 添加parent
          if(!parent.children){
            parent.children = [];
          };
          parent.children.push(item);
        }else{
          result.push(item);
        }
      });
      return result;
    },
// 获得树形结构数据
const newTreeData = this.newTree(res.data,'id','parentId');
点赞
收藏
评论区
推荐文章
翼
3年前
js 数组 转为树形结构
需要转换为树形的数组vardata{"orderById":null,"platformCommissionProportion":1,"name":"添加剂","pid":13,"id":26
Souleigh ✨ Souleigh ✨
3年前
JavaScript设计模式之英雄联盟
作者:黄梵高原文:https://juejin.cn/post/6844904165982879758构造函数模式简介在Jav
Wesley13 Wesley13
3年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
Wesley13 Wesley13
3年前
QPS、TPS、并发用户数、吞吐量关系
!(https://oscimg.oschina.net/oscnet/1cff91f3681947aa83c6abe32a7486c6.png)来源:https://juejin.cn/post/6844904084504313863QPS「QPS」QueriesPerSecond 是每秒查询率,是
Wesley13 Wesley13
3年前
Java开发者容易犯的十个错误
!(https://oscimg.oschina.net/oscnet/c9f00cc918684fbe8a865119d104090b.gif)Top1.数组转换为数组列表将数组转换为数组列表,开发者经常会这样做:\java\List<StringlistArrays.asList(arr);Arr
Wesley13 Wesley13
3年前
C#中二维数组的行数和列数
最近在项目中用到二维数组,需要获取数组的行数和列数,本以为是很简单的一些东西,却发现网上好多答案都是错误的,遂写下随笔,希望之后有用到的同学们能够顺利解决答案。下面是一些关于数组的一些属性和方法以及解释,为了表示方便,我们定义了一个数组arr,int,arrnewint8,20;Rank是指数组的维数,作为二维数组,这
Wesley13 Wesley13
3年前
Java中数组与集合的相互转换
数组与List的相互转换List转数组:采用集合的toArray()方法数组转List:采用Arrays的asList()方法数组转换为集合注意:在数组转集合的过程中,要注意是否使用了视图的方式直接返回数组中的数据。以Arrays.asList()为例,它把数组转换成集合时,不能使用其修改集
Wesley13 Wesley13
3年前
2万字20个实例解析Java8 Stream,带你玩转集合四大点!
!(https://oscimg.oschina.net/oscnet/5cfdb3c1cca14811aa7fe31609acfddc.png)作者:谷鸡泰juejin.cn/post/6900424495937355783!(https://oscimg.oschina.net/oscnet/cbb8aaed
达里尔 达里尔
11个月前
给数组添加新数据,判断数据是否重复
多选要进行数组拼接,希望判断往原数组里添的新数据是否重复,封装个简易方法languageconstdataArrayname:'aaa',id:1,name:'bbb',id:2;constnewDataname:'ccc',id:2;//要添加的新数
小万哥 小万哥
10个月前
C 多维数组、特殊字符和字符串函数详解
C多维数组数组,也称为单维数组。这些非常棒,是您在C语言编程中会经常使用的东西。然而,如果您想要将数据存储为表格形式,例如带有行和列的表格,则需要熟悉多维数组。二维数组二维数组也称为矩阵,具有行和列的结构。cintmatrix231,4,2,3,6
达里尔
达里尔
Lv1
大部分都是自己工作中遇到的问题,懒得用脑子记就写下来,主要是给自己看的,遇到的时候直接复制粘贴,如果对他人有帮助的话就更好了
文章
32
粉丝
3
获赞
13