Подтвердить что ты не робот

Поиск элемента массива Ruby с максимальным значением для определенного атрибута

Вероятно, очень простой ответ на этот вопрос, но я не могу, чтобы в жизни меня это выяснило в данный момент. Если у меня есть массив ruby ​​определенного типа объектов, и все они имеют определенное поле, как я могу найти элемент массива, у которого наибольшее значение для этого поля?

4b9b3361

Ответ 1

array.max_by do |element|
  element.field
end

Или:

array.max_by(&:field)

Ответ 2

Помогает ли это?

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

(Я предполагаю, что ваше поле имеет имя attr)

Ответ 3

Вы также можете отсортировать массив, а затем получить максимальное, минимальное, второе наибольшее значение и т.д.

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

puts hash[0]["key"]