Ответ 1
Просто сделайте, как показано ниже, Enumerable#max_by
:
ar = ['one','two','three','four','five']
ar.max_by(&:length) # => "three"
Однако выше [duplicate suggestion] для многомерного массива, а не для более простого случая, который я здесь представляю.
Например, если у меня есть:
'one','two','three','four','five'
Я хочу выбрать three
, поскольку это самая длинная строка. Я пробовал:
['one','two','three','four','five'].select{|char_num| char_num.size.max}
но Перечислимый # max не возвращает правильный результат.
Просто сделайте, как показано ниже, Enumerable#max_by
:
ar = ['one','two','three','four','five']
ar.max_by(&:length) # => "three"
arr.map(&:length).max -
Вы также можете использовать:
['one','two','three','four','five'].inject { |f, s| f.length > s.length ? f : s }