Ответ 1
a.index(a.max) should give you want you want
У меня есть массив элементов. Если я сделаю arr.max
, я получу максимальное значение. Но я хотел бы получить индекс массива. Как найти его в Ruby
Например
a = [3,6,774,24,56,2,64,56,34]
=> [3, 6, 774, 24, 56, 2, 64, 56, 34]
>> a.max
a.max
=> 774
Мне нужно знать индекс этого 774
, который равен 2
. Как это сделать в Ruby?
a.index(a.max) should give you want you want
В 1.8.7+ each_with_index.max
будет возвращен массив, содержащий максимальный элемент и его индекс:
[3,6,774,24,56,2,64,56,34].each_with_index.max #=> [774, 2]
В 1.8.6 вы можете использовать enum_for
, чтобы получить тот же эффект:
require 'enumerator'
[3,6,774,24,56,2,64,56,34].enum_for(:each_with_index).max #=> [774, 2]
который должен работать
[7,5,10,9,6,8].each_with_index.max