删除多维数组中的重复项

时间:2016-03-24 17:41:34

标签: ruby

A=[[a,3],[a,2],[a,1],[b,1],[b,3]]

我想通过第一个元素uniq数组,但保留具有最大第二个元素的项

结果应该是

[[a,3],[b,3]]

这是我的代码:

A.uniq{|i| i.first} 
=> [[a,1],[b,1]]

1 个答案:

答案 0 :(得分:1)

您可以使用Enumerable#group_byEnumerable#max_by

jca-adapter

这两个步骤:

A=[['a',3],['a',2],['a',1],['b',1],['b',3]]

A.group_by(&:first).map { |_,v| v.max_by(&:last) }
  #=> [["a", 3], ["b", 3]]