Comment trouver l'indice d'un tableau qui a une valeur maximale

J'ai un tableau d'éléments. Si je fais un arr.max, j'obtiendrai la valeur maximale. Mais je voudrais obtenir l'index du tableau. Comment le trouver dans Ruby

Par exemple

a = [3,6,774,24,56,2,64,56,34]
=> [3, 6, 774, 24, 56, 2, 64, 56, 34]
>> a.max
a.max
=> 774

J'ai besoin de connaître l'indice de la 774 qui 2. Comment puis-je faire cela dans Ruby?

26
demandé sur lennon310 2010-08-21 23:40:32

3 réponses

a.index(a.max)  should give you want you want
33
répondu ennuikiller 2010-08-21 19:43:56

Dans 1.8.7 + {[2] } retournera un tableau contenant l'élément maximum et son index:

[3,6,774,24,56,2,64,56,34].each_with_index.max #=> [774, 2]

Dans 1.8.6 vous pouvez utiliser enum_for pour obtenir le même effet:

require 'enumerator'
[3,6,774,24,56,2,64,56,34].enum_for(:each_with_index).max #=> [774, 2]
26
répondu sepp2k 2010-08-21 19:44:16

Cela devrait fonctionner

[7,5,10,9,6,8].each_with_index.max
7
répondu Raoul Duke 2010-08-21 19:44:02