可能重复:
需要在Ruby中将数组拆分为指定大小的子数组
我正在寻找一个数组 - 比如说[0,5,3,8,21,7,2] - 然后生成一个数组数组,分成很多地方.如果上面的数组设置为a,那么
a.split_every(3)
Run Code Online (Sandbox Code Playgroud)
将返回[[0,5,3],[8,21,7] [2]]
这是否存在,还是我必须自己实施?
Pla*_*ure 110
a.each_slice(3).to_a
Run Code Online (Sandbox Code Playgroud)
或者,迭代(而不是保持数组):
a.each_slice(3) do |x,y,z|
p [x,y,z]
end
Run Code Online (Sandbox Code Playgroud)
mae*_*ics 20
a = (1..6).to_a
a.each_slice(2).to_a # => [[1, 2], [3, 4], [5, 6]]
a.each_slice(3).to_a # => [[1, 2, 3], [4, 5, 6]]
a.each_slice(4).to_a # => [[1, 2, 3, 4], [5, 6]]
Run Code Online (Sandbox Code Playgroud)