js根据相同项将其他属性合并数组

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'}
];

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]
        })
    }
}
console.log(newArr)

原文地址:https://www.cnblogs.com/xhrr/p/14888839.html