Ответ 1
array.max_by do |element|
element.field
end
Или:
array.max_by(&:field)
Вероятно, очень простой ответ на этот вопрос, но я не могу, чтобы в жизни меня это выяснило в данный момент. Если у меня есть массив ruby определенного типа объектов, и все они имеют определенное поле, как я могу найти элемент массива, у которого наибольшее значение для этого поля?
array.max_by do |element|
element.field
end
Или:
array.max_by(&:field)
Помогает ли это?
my_array.max {|a,b| a.attr <=> b.attr }
(Я предполагаю, что ваше поле имеет имя attr
)
Вы также можете отсортировать массив, а затем получить максимальное, минимальное, второе наибольшее значение и т.д.
array = array.sort_by {|k,v| v}.reverse
puts hash[0]["key"]