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

时间:2010-04-23 15:00:31

标签: ruby arrays

我有一个数组

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]]

2 个答案:

答案 0 :(得分:302)

看看Enumerable#each_slice

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

答案 1 :(得分:35)

如果您使用的是rails,也可以使用in_groups_of

foo.in_groups_of(3)