• 0

كيف أجد تقاطع مصفوفات مختلفة في ريلز؟

أحاول أن أجد تقاطع مصفوفات مختلفة في إطار ريلز في لغة روبي، فعلى سبيل المثال المصفوفات التالية:

code1 = [1,2,3]
code2 = [2,3,4]
code3 = [0,2,6]

وستكون الإجابة 2.
كنت أفعل ذلك في PHP عن طريق استخدام array_intersect فما هي الطريقة الصحيحة لفعل ذلك في روبي؟

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


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

هنالك عدّة حلول بسيطة للحصول على تقاطع عدة مصفوفات في الروبي أو في ريلز، فمثلا يمكنك استخدام طريقة الرمز & والذي يرمز إلى التقاطع كما في المثال التالي:

> [1,2,3] & [2,3,4] & [0,2,6]
=> [2]

لاحظ أننا كررنا استخدام الرمز & حسب المصفوفات.
أو يمكنك دمج السلاسل النصية مع بعض ومن ثم استخدام inject، أو إذا كنت تستخدم الإصدار 1.9 من روبي استعمل  inject أيضا بطريقة مختصرة أكثر كما في المثال التالي:

> arrays = [code1,code2,code3]
> arrays.inject(:&)                   # Ruby 1.9 shorthand
=> [2]
> arrays.inject{|codes,x| codes & x } # Full syntax works with 1.8 and 1.9
=> [2]

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


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

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

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

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


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

تسجيل الدخول

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


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