朋友问了个问题,简单处理了一下,发在下面。
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)
网友评论