索引+ 1到with_index而不关闭索引

时间:2016-03-29 19:22:20

标签: ruby

这是我在防止数组中最后一个索引+1的方法。在红宝石中实现这一目标的最佳方法是什么?提前谢谢。

  array.each.with_index do |x, index|
    unless index+1 == array.length
      if x + array[index+1] == n
        ...

2 个答案:

答案 0 :(得分:3)

试试这个:

array[0..-2].each.with_index do |x, index|
      if x + array[index+1] == n
        ...

答案 1 :(得分:3)

您可以使用范围来执行您想要的操作。类似的东西:

array = [0, 1, 2, 3, 4]
array[0...-1].each do |x|
    print x
end
# => 0123

-1指的是最后一个元素,使用3个点...表示您从第一个 *独占* 中获取所有元素。 2个点也包括最后一个。

额外提示:在红宝石中,通过使用each代替each_with_index,您可以通过预先剔除/修改数组来大部分时间逃脱。