2016-04-15 7 views
1

これで私は、Rubyの列挙子を使用して要素の次のn数を取得しようとしています:Rubyの列挙子を使用して次のn個の要素を取得するにはどうすればよいですか?

a = [1, 2, 3, 4, 5, 6] 
enum = a.each 
enum.next(2) # expecting [1, 2] 
enum.next(2) # expecting [3, 4] 

しかし#nextがそれをサポートしていません。私はそれを行うことができる別の方法はありますか? それともやりますか?

Rubyの正しい方法は何ですか?

答えて

5

あなたは二つの要素のスライスが必要な場合は、あなたができるtake方法

enum.take(2) 

を使用することができます。

e = enum.each_slice(2) 
p e.next 
#=> [1, 2] 
p e.next 
#=> [3, 4] 
+1

しかし、この1はいつも私が間違っている最初の2アムを返しますか? –

+0

@ p.matsinopoulos正確な要件は何ですか?最後に列挙型を残した時点から、2つの要素をすべて取得するか、任意の数の要素を取得したいですか? –

1
a = [1, 2, 3, 4, 5, 6] 
enum = a.dup 
enum.shift(2) # => [1, 2] 
enum.shift(2) # => [3, 4] 
関連する問題