将list分组显示的需求,解决方法如下
// 后端返回数据list集合
let salesAllList = response.data;
// 临时记录根据某字段分组的临时键值对变量,用来记录是否已经存在该字段
var map = {}
// 存储处理数据完成后的 数组
this.salesAllList = [];
// 遍历list数据
for(var i = 0; i < salesAllList.length; i++){
// ii代表list中的某一项
var ii = salesAllList[i];
if(!map[ii.type]){ // 临时键值对变量中不存在此键
// 将此数据以对象格式放到数组中{key : value}
this.salesAllList.push({
type: ii.type,
salesAllList: [ii]
});
// 将未加入map的key放入,这样下次map[ii.type]就会返回true,map只用于此。
map[ii.type] = ii;
}else{ // 如果此键值已存在
//遍历数组
for(var j = 0; j < this.salesAllList.length; j++){
// 数组中某一项数据
var jj = this.salesAllList[j];
// 如果数据中此key的值和该salesAllList[i].type的值相等
if(jj.type == ii.type){
// 把salesAllList[i]也放入该key的value中
jj.salesAllList.push(ii);
break;
}
}
}