如何在数组中找到最大值的位置?

时间:2011-06-05 17:33:02

标签: ruby-on-rails ruby

如果我有

ary = [7, 8, 0, 1, nil, 6]

如何在数组中找到最大值的位置?我可以做到这一点,但需要不止一行。

4 个答案:

答案 0 :(得分:5)

这将返回数组中第一个最大值的索引:

ary = [7, 8, 0, 1, nil, 6, 8]
ary.index(ary.compact.max)
=> 1 

答案 1 :(得分:2)

比选定的答案稍微冗长,但只有一次遍历数组且没有中间数组(指定-1作为nil的排序值:

>> ary.each_with_index.max_by { |x, idx| x || -1 }[1] 
=> 1

答案 2 :(得分:0)

这样的事情有用吗?

ary.sort
ary.reverse
ary[0]

答案 3 :(得分:0)

试试这个。

ary = [7, 8, 0, 1, nil, 6]
puts ary.index(ary.compact.max)