怎么对素组进行有条件去重复?
[
{name:小红,score:97},
{name:小红,score:98}
{name:小明,score:89}
]
用什么函数方法能只保留同名里分数最高的记录,
也就是得到这个:[{name:小红,score:98},{name:小明,score:89}]
1 回复
可以用 map 进行去重
let list = [
{name:"小红",score:97},
{name:"小红",score:98},
{name:"小明",score:89}
];
let map = {};
for (let user of list) {
let item = map[user.name];
if(!item) {
map[user.name] = user;
}
if(map[user.name].score <= user.score){
// 存储最大的分数
map[user.name].score = user.score;
}
}
// 最后把map的value拿出来转成数组就行