86 votes

Trouver l'élément d'un tableau Ruby ayant la valeur maximale pour un attribut particulier

Il existe probablement une réponse très simple à cette question, mais je n'arrive pas à la trouver pour l'instant. Si j'ai un tableau ruby d'un certain type d'objets, et qu'ils ont tous un champ particulier, comment puis-je trouver l'élément du tableau qui a la plus grande valeur pour ce champ ?

160voto

David Grayson Points 22459
array.max_by do |element|
  element.field
end

Ou :

array.max_by(&:field)

29voto

p.matsinopoulos Points 2651

Cela vous aide-t-il ?

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

(Je suppose que votre champ a un nom attr )

3voto

Linju Points 225

Vous pouvez également trier le tableau et obtenir les valeurs max, min, deuxième plus grande valeur, etc.

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

puts hash[0]["key"]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X