2013-02-28 4 views
8

重複同等

[1, 2, 3, 4, 5] 

このようにそれを反復処理する最も簡単な方法は何ですか?

[[1,2], [2,3], [3,4], [4,5]] 

またはこれは?

[[1,2,3], [2,3,4], [3,4,5]] 
+0

これはexercism.ioから問題の一つである笑 – compiledwrong

答えて

18

each_consdocs)がこれを行います。あなたはあなたが望むチャンクのサイズを渡すだけで、あなたが渡すブロックにそれらを与えるでしょう。

あなたが実際に配列をしたい場合は、次のことができ、もちろんチェーンのこのto_aと、例えば

(1..5).each_cons(3).to_a 
+1

これは素晴らしいですが、私は知りませんでした#each_consメソッドについて... Rubyが大好き! – hwatkins

+0

右上に!私はstdlibの中のどこかでそれを見たことが思い出したと思った... 8P – Jostein

+1

@hwatkins、RubyのEnumerableは、このような良さに満ちている。 –