怎么对素组进行有条件去重复?
发布于 6 年前 作者 liwan 10945 次浏览 来自 官方Issues

[

{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拿出来转成数组就行
回到顶部