从阵列中删除部分重复项

时间:2019-10-30 21:13:45

标签: javascript

位noobie问题,但是我有一个看起来像这样的数组:

[["john",13],
["jack",12],
["judy",14],
["john",18]]

如果名称重复,我想删除得分最高的元素,使其看起来像这样:

[["john",13],
["jack",12],
["judy",14]]

在这种情况下,删除重复项的标准方法不起作用,我只是想知道是否有人知道该怎么做?

预先感谢

1 个答案:

答案 0 :(得分:1)

您可以使用reduce方法和Map来获取唯一值,然后可以使用扩展语法来获取数组数组。

const data = [["john",13], ["jack",12], ["judy",14], ["john",18]]

const result = data.reduce((r, [k, v]) => {
  if(!r.get(k) || v < r.get(k)) r.set(k, v)
  return r;
}, new Map)

console.log([...result])