如果我有这样的数组:[0, 1, 2, 3, 4, 5]
,是否有内置方法来创建它:
[[0, 1, 2], [3, 4, 5]]
宽度为 3?如果没有内置方法,我该如何改进?
def multi_to_single(array, width)
return [].tap{|md_array|
(array.length.to_f / width).ceil.times {|y|
row = (array[(y*width), width])
md_array.push( row + Array.new(width - row.length))
}
}
end
我觉得我错过了一些明显的东西,因为我已经有一段时间没有编写 ruby 程序了! 提前致谢,嗯。
编辑:它需要在核心库中,所以没有 ruby on rails 或任何东西。
最佳答案
我想这就是您要找的:
[1,2,3,4,5,6].each_slice(3).to_a #=> [[1, 2, 3], [4, 5, 6]]
使用 ruby 1.9.2p136(2010-12-25 修订版 30365)
关于Ruby 内置方法从一维数组创建多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8869539/