我有一个类似这样的数组:
arr = [4, 5, 6, 7, 8, 4, 45, 11]
我想要一个像这样的奇特方法
sub_arrays = split (arr, 3)
这应该返回以下内容:[[4, 5, 6], [7,8,4], [45,11]]
注意:这个问题不是“如何对数组进行分块”的重复。 chunk 问题是关于批量处理的,而这个问题是关于分割数组的。
arr.each_slice(3).to_a
each_slice
返回一个 Enumerable,所以如果这对你来说足够了,你不需要调用to_a
.
在1.8.6中你需要做:
require 'enumerator'
arr.enum_for(:each_slice, 3).to_a
如果您只需要迭代,您可以简单地执行以下操作:
arr.each_slice(3) do |x,y,z|
puts(x+y+z)
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)