数组里name相等的的去重并且muen求重复的总和

2018-10-24  本文已影响8人  无人像妳i

朋友问了个问题,简单处理了一下,发在下面。

 let arr=[
 {name:"a",muen:2},
 {name:"a",muen:21},
 {name:"g",muen:2},
 {name:"g",muen:3},
 {name:"g",muen:3},
 {name:"c",muen:4},
 {name:"c",muen:44}
 ]

//问你个问题怎么把这数组里name相等的的去重并且muen求重复的总和

function unique(arr) {
const res = new Map();
return arr.filter((a) => !res.has(a) && res.set(a, 1))
}
let uniqueName = unique(arr.map((item)=>{ return item.name }));
let arr1 = [];
arr.forEach((item,index)=>{
    uniqueName.forEach((value,key)=>{
        if(item.name === value){
            // console.log((arr1.map((item)=>{return item.name})));

            if((arr1.map((item)=>{return item.name})).includes(value)){
                arr1.map((item_arr1)=>{ if(item_arr1.name === value){
                    item_arr1.muen += item.muen;
                } })
                // arr1[item.name] += item.muen;
            }else{
                arr1.push(item);
            }
        }
    })
})
console.log(arr1)
上一篇 下一篇

猜你喜欢

热点阅读