• 0

كيف أجد مواقع العناصر التي تتطابق مع شرط معين في روبي؟

لدي مصفوفة وأريد استخراج مواقع العناصر التي تتطابق مع شرط معينة، فمثلا لو أملك مصفوفة تحتوي على أرقام فأريد الحصول على مواقع العناصر التي قيمتها 2 فما الطريقة الصحيحة لفعل ذلك؟

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


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

يوجد العديد من الطرق في لغة روبي لفعل ذلك، وأفضل هذه الطرق هي عن طريق استخدام تابع each_index ومن ثم تضع الشرط داخل select كما يظهر في المثال التالي:

list = [1,2,4,3,2,3,4,2]
p arr.each_index.select{|i| list[i] == 2}
#[1, 4, 7]

أو يمكنك استخدام توابع times أو size مع وضع الشرط في select كما في المثال التالي:

list.size.times.select {|i| list[i] == 2}

وتوجد طريق أخرى يمكنك استخدامها كالتالي:

list.map.with_index {|a, i| a == 2 ? i : nil}.compact

الطرق مرتبة من الأفضل والأسرع إلى أقل من ذلك.

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


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

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

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

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


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

تسجيل الدخول

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


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