يمكنك تقسيم المصفوفة إلى أجزاء متساوية بطرق عديدة في لغة روبي، فمثلا يمكنك استخدام تابع each_slice ومن ثم تمرير طول تقسيم المصفوفة حيث ستتمكن من تقسيمها بعدد عناصر محدد مثل 3، ولا تنسى أنه يجب عليك تحويل المصفوفة باستخدام تابع to_a أولا كما في المثال التالي: a = [0, 1, 2, 3, 4, 5, 6, 7]
a.each_slice(3) # => #<Enumerator: [0, 1, 2, 3, 4, 5, 6, 7]:each_slice(3)>
a.each_slice(3).to_a # => [[0, 1, 2], [3, 4, 5], [6, 7]]
ويمكنك استخدام تابع in_groups حيث سيتم تقسيم المصفوفة إلى عدد معين من المصفوفات والذي تحدده أنت وإذا كان طول المصفوفة غير متساوي فيجب عليك فستكون المصفوفات غير متساوية كما تظهر في المثال التالي: a = [0,1,2,3,4,5,6]
a.in_groups(2) # => [[0,1,2,3],[4,5,6,nil]]
a.in_groups(3, false) # => [[0,1,2],[3,4], [5,6]]