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

السؤال

نشر

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

Recommended Posts

  • 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

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...