2011-10-19 102 views
7

可能重複:
How to split (chunk) a Ruby array into parts of X elements?分割的陣列成一些子陣列

我想的陣列分成子陣列的陣列。

例如,

big_array = (0...6).to_a 

我們如何能切這個大數組的數組的數組(2項的最大長度的),如:

arrays = big_array.split_please(2) 

哪裏..​​.

arrays # => [ [0, 1], 
       [2, 3], 
       [4, 5] ] 

注意: 我問這個問題,'因爲爲了做到這一點,我目前編碼是這樣的:

arrays = [ 
      big_array[0..1], 
      big_array[2..3], 
      big_array[4..5] 
     ] 

......這是如此醜陋。而且非常難以維護的代碼,當時big_array.length > 100

回答

14

您可以使用#each_slice方法數組

big_array = (0..20).to_a 
array = big_array.each_slice(2).to_a 
puts array # [[0, 1], [2, 3], [4, 5], [6, 7], [8, 9], [10, 11], [12, 13], [14, 15], [16, 17], [18, 19], [20]] 
+0

它是如何不一樣的作爲我的'切片'? :) – tolitius

+0

謝謝,只是完美。我會更認真地學習Ruby的API o_o; –

6

退房的slice

big_array.each_slice(2).to_a 
+0

哦......我的上帝,謝謝:) –