迭代循环访问两个元素(如果存在)

时间:2013-08-07 19:21:19

标签: ruby loops iterator

好吧,我还没有找到一个干净的解决方案来轻松地在Ruby中编写代码:

# Java style version:
array.each do |i, el|
  if i < array.length - 1
     process(array[i], array[i+1])
  end
end

# Would be nice if I could do something like this:
array.each do |i, el, next|
  process(el, next)
end

2 个答案:

答案 0 :(得分:8)

您可以使用each_cons

array.each_cons(2) do |a, b|
  process(a, b)
end

答案 1 :(得分:2)

ar = [1,2,3,4]
(ar.size - 1).times {|i| process ar[i],ar[i+1]}