web-dev-qa-db-fra.com

Comment puis-je sélectionner la plus longue chaîne d'un tableau Ruby?

Toutefois, ci-dessus, [suggestion de duplication] concerne un tableau multidimensionnel et non le cas plus simple que je pose ici.

Par exemple si j'ai:

'one','two','three','four','five'

Je veux sélectionner three car c'est la chaîne la plus longue. J'ai essayé:

['one','two','three','four','five'].select{|char_num| char_num.size.max} 

mais Enumerable # max ne renvoie pas le bon résultat.

22
Michael Durrant

Faites comme ci-dessous en utilisant Enumerable#max_by :

ar = ['one','two','three','four','five']
ar.max_by(&:length) # => "three"
52
Arup Rakshit
arr.map(&:length).max     -
1
Johnson

Vous pouvez aussi utiliser:

['one','two','three','four','five'].inject { |f, s| f.length > s.length ? f : s }
0
wbucko