现有数组
var array = [
{name: '张飞', value: '1'},
{name: '张飞', value: '2'},
{name: '张飞', value: '3'},
{name: '关羽', value: '9'},
{name: '关羽', value: '6'},
{name: '刘备', value: '8'},
{name: '刘备', value: '2'},
{name: '刘备', value: '1'}
];
目标数组
data = [
{name: '张飞', value: ['1', '2', '3']},
{name: '关羽', value: ['9', '6']},
{name: '刘备', value: ['8', '2', '1']}
];
实现方法
var newArr = [];
for(var i = 0; i< array.length; i++){
var index = newArr.findIndex(function(item) {
return item.name === array[i].name
});
if(index !== -1){
newArr[index].value.push(array[i].value);
}else{
newArr.push({
name: array[i].name,
value: [array[i].value]
})
}
}
如果各位大佬有更好的方法, 欢迎指教