使用#each_index防止索引超出范围

时间:2013-02-25 04:41:47

标签: ruby-on-rails ruby arrays

如果我打算做这样的事情

array.each_index do |i|
  if array[i] > array[i + i]
    #something
  end
end

如何更改此项以防止索引超出范围?

2 个答案:

答案 0 :(得分:3)

array.each_cons(2) do |current, nekst|
  if current > nekst
    #something
  end
end

或者如果您需要索引,那么:

array.each_cons(2).with_index do |(current, nekst), i|
  if current > nekst
    #something with i
  end
end

答案 1 :(得分:0)

array.each_index do |i|
  if array[i + 1] and array[i] > array[i + i]
    #something
  end
end