web-dev-qa-db-fra.com

Comment diviser (bloc) un Ruby tableau en parties d'éléments X?

J'ai un tableau

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

Comment puis-je scinder ou "découper" ceci en petits tableaux?

class Array
  def chunk(size)
    # return array of arrays
  end
end

foo.chunk(3)
# => [[1,2,3],[4,5,6],[7,8,9],[10]]
162
maček

Jetez un oeil à Enumerable # each_slice :

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

Si vous utilisez Rails, vous pouvez également utiliser in_groups_of :

foo.in_groups_of(3)
36
Head