• 0

كيف أقسم مصفوفة إلى أجزاء متساوية في روبي؟

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

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

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 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]]

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن