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

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

 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)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容