如何将 ruby​​ 中的数组切片为指定长度的子数组?

han*_*cho 1 ruby arrays slice

我想将数组拆分为指定长度的子数组。

我知道 .each_slice 会将一个数组分成等长的子数组,剩下的剩余部分如下:

a = [1,2,3,4,5,6,7,8,9,10]
a.each_slice(3).to_a => [[1,2,3],[4,5,6],[7,8,9],[10]]
Run Code Online (Sandbox Code Playgroud)

但是,假设我想要这样的输出:

=> [[1],[2,3],[4,5,6],[7,8,9,10]]
Run Code Online (Sandbox Code Playgroud)

ruby 中是否有一种方法可以根据您提供的参数将数组切成不同的指定长度?

aku*_*uhn 5

尝试这个

a = [1,2,3,4,5,6,7,8,9,10]
slices = [1,2,3,4].map { |n| a.shift(n) }
Run Code Online (Sandbox Code Playgroud)

这将数组切片

注意,这会改变原始数组。