如果我有
ary = [7, 8, 0, 1, nil, 6]
如何在数组中找到最大值的位置?我可以做到这一点,但需要不止一行。
答案 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)