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
数组中的所有元素。
最后数据格式如下,方便简单不需要多次循环,实现功能。