最佳答案
我需要一种方法将一个数组分割成大小大致相等的精确数量的较小数组。有人知道怎么做吗?
比如说
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
groups = a.method_i_need(3)
groups.inspect
=> [[1,2,3,4,5], [6,7,8,9], [10,11,12,13]]
请注意,这是一个完全独立于 将数组分成块的问题,因为
a.each_slice(3).to_a
将产生5个组(而不是3个,像我们希望的那样) ,最终的组可能是一个完全不同于其他组的大小:[[1,2,3], [4,5,6], [7,8,9], [10,11,12], [13]] # this is NOT desired here.
在这个问题中,预先指定了所需的块数,每个块的大小最多相差1。