vue下一些資料處理
1.陣列[ {},{},{},{} ]==》[ [{},{}] , [{},{}] ] 遍歷 去重 建模 關聯 排序
var arr=[{cname:'A',reType:1,riskRemark:'1111'},{cname:'A',reType:2,riskRemark:'22222'},{cname:'B',reType:1,riskRemark:'3333'},{cname:'B',reType:2,riskRemark:'44444'}]
==>
arrneed=[[{cname:'A',reType:1,riskRemark:'1111'},{cname:'A',reType:2,riskRemark:'22222'}],[{cname:'B',reType:1,riskRemark:'3333'},{cname:'B',reType:1,riskRemark:'4444'}]]
解析:
let arr1=[];
for(var i=0;i<arr.length;i++){//1.遍歷出cname
arr1.push(arr[i].cname)
}
let arr2=Array.form(new Set(arr1));//2.對cname去重
let arr3=[];
for (var j=0;j<arr2.length;j++){//3.需要造出的陣列結構[[],[]]
arr3.push([]);
}
for(var k=0;k<arr2.length;k++){//4.關聯出新陣列
for (var n=0;n<arr.length;n++){
if(arr[n].cname===arr2[k]){
arr3[k].push(arr[n]);
}
}
}
this.workInfo=arr3.map(item=>{//5.在新陣列依據reType排序
return item.sort(this.compare('reType'))
})
compare(pro){
return function(a,b){
var value1=a[pro];
var value2=b[pro];
return value2-value1;
}
}