• 0

كيف أحصل على العناصر الفريدة من مصفوفة hash في روبي؟

لدي مصفوفة تحتوي على مجموعة من hash وأريد الحصول على العناصر الفريدة في المصفوفة -أي عناصرها بدون تكرار- فلقد جربت استخدام uniq لكن الطريقة لم تنجح.

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


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

يوجد عدة حلول لهذه المشكلة، وأبسط حل هو أن تنتقل لاستخدام نسخة أحدث من روبي، فلقد تم حل هذه المشكلة منذ الإصدار 1.8.7 حيث أصبحت uniq ترجع العناصر الفريدة في المصفوفة.
أو يمكنك استخدام توابع inject و include مع حلقة unless لفعل ذلك كما في المثال التالي:

a = [{:a => 1},{:a => 2}, {:a => 1}]
a.inject([]) { |result,h| result << h unless result.include?(h); result }

 

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


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

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

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

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


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

تسجيل الدخول

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


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