【问题标题】:Removing partial duplicates from an array从数组中删除部分重复项
【发布时间】:2020-02-26 05:54:16
【问题描述】:

-有点菜鸟问题,但我有一个看起来像这样的数组:

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

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

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

删除重复的标准方法在这种情况下不起作用,我只是想知道是否有人知道如何做到这一点?

提前致谢,

【问题讨论】:

标签: javascript


【解决方案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])

【讨论】:

  • .entries() 并不是真正需要的。只需传播 Map 即可创建二维条目数组
猜你喜欢
  • 1970-01-01
  • 2011-06-29
  • 2023-01-17
  • 2011-01-04
  • 1970-01-01
相关资源
最近更新 更多