将数组拆分为一些子数组

Zag*_*g.. 7 ruby arrays

可能重复:
如何将Ruby数组拆分(块)成X个元素的部分?

我想将一个数组拆分成一个子数组.

例如,

big_array = (0...6).to_a
Run Code Online (Sandbox Code Playgroud)

我们如何将这个大数组切割成一个数组(最大长度为2项)的数组,例如:

arrays = big_array.split_please(2)
Run Code Online (Sandbox Code Playgroud)

哪里...

arrays # => [ [0, 1],
              [2, 3],
              [4, 5] ]
Run Code Online (Sandbox Code Playgroud)

注意:我问这个问题,'因为为了做到这一点,我目前编码如下:

arrays = [
           big_array[0..1],
           big_array[2..3],
           big_array[4..5]
         ]
Run Code Online (Sandbox Code Playgroud)

......太难看了.而且非常难以维护的代码big_array.length > 100.

Chr*_*det 15

您可以#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]]
Run Code Online (Sandbox Code Playgroud)


tol*_*ius 6

看看切片:

big_array.each_slice( 2 ).to_a
Run Code Online (Sandbox Code Playgroud)