Iterate an array, n items at a time

I have an array:

[1,2,3,4,5,6,7,8,9,0] 

that I'd like to iterate 3 at a time, which produces

1,2,3  and  4,5,6  and  7,8,9   and   0

What's the best way to do this in Ruby?


Solution 1:

You are looking for #each_slice.

data.each_slice(3) {|slice| ... }

Solution 2:

Use .each_slice

[1,2,3,4,5,6,7,8,9,0].each_slice(3) {|a| p a}