我有一系列元素。如果我做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中做到这一点?
答案 0 :(得分:33)
a.index(a.max) should give you want you want
答案 1 :(得分:28)
在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]
答案 2 :(得分:7)
应该有效
[7,5,10,9,6,8].each_with_index.max