数组合并之展开运算符

1.一个小需求,后端返回的数据格式如下:

2.需求如下:后端没有给到全部,需要自己写上,并且拿到所有分类数据,数据格式为树状。

3,解决方式:拿到列表数据,定义一个空数组,将列表添加,循环列表,将列表中的items,添加到空数组,在将全部作为一个分类,unshift添加到列表数据的最前面。代码如下。

async getData() {
            var para = {}
            let dataAll = []//定义一个空数组
            this.dataList= await this.$ala.httpPost('api/ElementEngine/tree', para)//请求接口拿到列表数据
            this.dataList.forEach(element => {
                dataAll.push(...element.items)
            })//循环列表,将空数组添加到dataAll
            this.dataList.unshift({
                classId:0,
                items: dataAll,
                name: '全部'
            })//添加全部到列表数据
        },

注意:给dataAll添加数据时,应该使用扩展运算符添加而不是直接添加,1.dataAll.push(element.items)将 element.items 视为单个元素,并将其作为整个数组添加到 dataAll 数组中。

添加后数据格式如下,只有7条数据并且是二位数据,这样子添加会影响到原来的数据格式。

2.dataAll.push(...element.items)使用了展开运算符 ...,它可以将数组中的元素展开为单独的参数,这将把 element.items 数组中的每个元素作为单独的参数添加到 dataAll 数组中,将是 dataAll 数组中包含了 element.items 数组中的所有元素。

最后数据格式如下,方便简单不需要多次循环,实现功能。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值