如何将一个Ruby数组拆分(块)成X部分?

我有一个数组

foo = %w(1 2 3 4 5 6 7 8 9 10) 

我怎么能分裂或“块”到更小的数组?

 class Array def chunk(size) # return array of arrays end end foo.chunk(3) # => [[1,2,3],[4,5,6],[7,8,9],[10]] 

看看Enumerable#each_slice :

 foo.each_slice(3).to_a #=> [["1", "2", "3"], ["4", "5", "6"], ["7", "8", "9"], ["10"]] 

如果你使用rails,你也可以使用in_groups_of :

 foo.in_groups_of(3)