# Skim Array two by two

**URL:** <https://www.ruby-forum.com/t/skim-array-two-by-two/84135>\
**Category:** Ruby\
**Created:** [February 1, 2007, 7:26pm UTC](https://www.ruby-forum.com/t/skim-array-two-by-two/84135 "2007-02-01T19:26:49Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![micktaiwan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/4af34b/32.png) [@micktaiwan](https://www.ruby-forum.com/u/micktaiwan)\
**Post date:** [February 1, 2007, 7:26pm UTC](https://www.ruby-forum.com/t/skim-array-two-by-two/84135/1 "2007-02-01T19:26:49Z")

</div>

Hi,

Is it possible to get 2 elements at once ?

[1,2,3,4].each {|a,b| puts a;puts b;puts ‘x’}  
produces  
1,  
nil  
x  
2  
nil  
x  
3  
nil  
x  
4  
nil  
x

I’d like to get

1  
2  
x  
3  
4  
x

Thanks !

---

<div class="post-metadata">

**Author:** ![micktaiwan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/4af34b/32.png) [@micktaiwan](https://www.ruby-forum.com/u/micktaiwan)\
**Post date:** [February 1, 2007, 7:39pm UTC](https://www.ruby-forum.com/t/skim-array-two-by-two/84135/2 "2007-02-01T19:39:50Z")

</div>

On Fri, 2 Feb 2007, Mickael Faivre-Macon wrote:

> nil  
> 1  
> 2  
> x  
> 3  
> 4  
> x
> 
> Thanks !

harp:~ \> cat a.rb  
require ‘enumerator’

puts  
%w( a b c d e ).each\_cons(2){|x,y| p [x,y]}

puts  
%w( a b c d e ).each\_slice(2){|x,y| p [x,y]}  
harp:~ \> ruby a.rb

[“a”, “b”]  
[“b”, “c”]  
[“c”, “d”]  
[“d”, “e”]

[“a”, “b”]  
[“c”, “d”]  
[“e”, nil]

-a

---

<div class="post-metadata">

**Author:** ![micktaiwan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/4af34b/32.png) [@micktaiwan](https://www.ruby-forum.com/u/micktaiwan)\
**Post date:** [February 1, 2007, 7:42pm UTC](https://www.ruby-forum.com/t/skim-array-two-by-two/84135/3 "2007-02-01T19:42:50Z")

</div>

On Feb 1, 2007, at 12:26 PM, Mickael Faivre-Macon wrote:

> Is it possible to get 2 elements at once ?

> I’d like to get
> 
> 1  
> 2  
> x  
> 3  
> 4  
> x

> > require “enumerator”  
> > =\> true
> 
> > [1, 2, 3, 4].each\_slice(2) { |a, b| puts a, b, “x” }  
> > 1  
> > 2  
> > x  
> > 3  
> > 4  
> > x  
> > =\> nil

Hope that helps.

James Edward G. II

---

<div class="post-metadata">

**Author:** ![micktaiwan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/4af34b/32.png) [@micktaiwan](https://www.ruby-forum.com/u/micktaiwan)\
**Post date:** [February 2, 2007, 9:02am UTC](https://www.ruby-forum.com/t/skim-array-two-by-two/84135/4 "2007-02-02T09:02:59Z")

</div>

thanks everybody !
