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]]
答案 0 :(得分:1)
您可以使用Enumerable#group_by和Enumerable#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]]