اذهب إلى المحتوى

السؤال

نشر

أحتاج إلى تقسيم المصفوفة إلى أجزاء متساوية محددة الحجم فهل هنالك طريقة أو دالة معينة في لغة روبي لفعل ذلك؟ مثال على ما أريده:

a = [0, 1, 2, 3, 4, 5, 6, 7]
a.method_i_need(3)
a.inspect
    => [[0,1,2], [3,4,5], [6,7]]

 

Recommended Posts

  • 0
نشر

يمكنك تقسيم المصفوفة إلى أجزاء متساوية بطرق عديدة في لغة روبي، فمثلا يمكنك استخدام تابع 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]]

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...