webentwicklung-frage-antwort-db.com.de

Wie kann ich die längste Zeichenfolge aus einem Ruby-Array auswählen?

Der obige [doppelte Vorschlag] bezieht sich jedoch auf ein mehrdimensionales Array und nicht auf den einfacheren Fall, den ich hier vorstelle.

Zum Beispiel wenn ich habe:

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

Ich möchte three auswählen, da dies die längste Zeichenfolge ist. Ich habe es versucht:

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

aber Enumerable # max gibt nicht das richtige Ergebnis zurück.

22
Michael Durrant

Führen Sie einfach die folgenden Schritte aus, indem Sie Enumerable#max_by verwenden:

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

Sie können auch verwenden:

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