查找具有特定属性的最大值的Ruby数组的元素

时间:2011-11-07 16:00:04

标签: ruby

这个问题可能有一个非常简单的答案,但我不能为我的生活弄清楚这一点。如果我有一个特定类型对象的ruby数组,并且它们都有一个特定字段,我如何找到该字段的元素具有该字段的最大值?

3 个答案:

答案 0 :(得分:134)

array.max_by do |element|
  element.field
end

或者:

array.max_by(&:field)

答案 1 :(得分:27)

这有帮助吗?

my_array.max {|a,b| a.attr <=> b.attr }

(我假设您的字段名称为attr

答案 2 :(得分:1)

您还可以对数组进行排序,然后获得最大,最小,第二大值等。

array = array.sort_by {|k,v| v}.reverse

puts hash[0]["key"]