原数组如下,诉求是将数组中每一项的workRoadName属性相同的对象放在一个新得数组中
list : [
{
workRoadName:'111',
workName:'班次001',
driver:'张三01'
},
{
workRoadName:'111',
workName:'班次001',
driver:'张三02'
},
{
workRoadName:'111',
workName:'班次001',
driver:'张三03'
},
{
workRoadName:'222',
workName:'班次002',
driver:'李四01'
},
{
workRoadName:'222',
workName:'班次002',
driver:'李四02'
},
{
workRoadName:'333',
workName:'班次003',
driver:'王二01'
},
]
afterArr是在data中定义的最终数组,方法如下:
formatList(arr){
let tempArr=[]
let that = this;
for(let i=0;i<arr.length;i++){
if(tempArr.indexOf(arr[i].workRoadName)==-1){
that.afterArr.push(
{name:arr[i].workRoadName,
origin:[arr[i]]
}
)
tempArr.push(arr[i].workRoadName)
}else{
for(let j=0;j<that.afterArr.length;j++){
if(that.afterArr[j].name==arr[i].workRoadName){
that.afterArr[j].origin.push(arr[i]);
break;
}
}
}
}
console.log(this.afterArr,'最终数组111111');
},
数据效果如下: