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

السؤال

نشر

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

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

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

Recommended Posts

  • 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]

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...