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

السؤال

نشر (معدل)

أملك مصفوفة من hashes وأريد فرز المصفوفة أول بـ hash الذي يدعى “foo” وبعد ذلك بـ “bab” بعد بحث طويل وجدت هذا الحل:

a.sort_by {|h| [ h['foo'],h['bab'] ]}

لكن عند تجربته أحصل على خطأ من نوعا "comparison of Array with Array failed” فما السبب؟

تم التعديل في بواسطة المبرمج العربي

Recommended Posts

  • 0
نشر

هنالك عدة طرق في لغة روبي لفرز المصفوف حسب قيم معينة متعددة، فيمكنك على سبيل المثال استخدام تابع sort ومن ثم اختيار ترتيب الفرز كما يظهر في المثال التالي:

a.sort { |a, B| [a['foo'], a['bab']] <=> [b['foo'], b['bab']] }

أما بالنسبة للمثال الذي وضعته والذي أخذته من شبكة الإنترنت فهو يعمل لدي بدون مشاكل على نظام لينكس وعلى إصدار 1.8.7 من روبي، ربما لا يعمل على الإصدارات الجديدة للروبي فحاول تجربته على الإصدار 1.8.7.

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...