ali_agha نشر 6 أكتوبر 2015 أرسل تقرير نشر 6 أكتوبر 2015 لدي المصفوفة التالي:[ { :foo => 'foo', :bab => 2 }, { :foo => 'foo', :bab => 3 }, { :foo => 'foo', :bab => 5 }, ] أريد أن أقوم بفرز هذه المصفوفة تنازليا حسب قيمة :bab في كل سطر، فما هي أفضل طريقة للفرز ؟ اقتباس
0 هشام رزق الله نشر 6 أكتوبر 2015 أرسل تقرير نشر 6 أكتوبر 2015 هنالك عدة طرق لفرز العناصر المصفوفة تنازليا حسب قيمة معينة في الروبي، فيمكنك على سبيل المثال استخدام التابع sort حسب المعطيات التالية حتى تتمكن من الفرز:a.sort{|a,b| b[:bab] <=> a[:bab]}أو يمكنك أيضا استخدام التابع sort_by لترتيب عناصر المصفوفة تصاعديا ومن ثم تقوم باستخدام .reverse! لإعادة ترتيبها بشكل تنازلي كما في المثال التالي:a.sort_by { |h| h[:bab] }.reverse!كما يمكنك أيضا استخدام هذه الطريقة السهلة لترتيب العناصر بشكل تنازلي كما في المثال التالي: a.sort {|x,y| y[:bab]<=>x[:bab]} حيث ستكون النتيجة بعد تنفيذ هذا السطر شبيه بهذه:irb >> a = [ ?> { :foo => 'foo', :bar => 2 }, ?> { :foo => 'foo', :bar => 3 }, ?> { :foo => 'foo', :bar => 5 }, ?> ] => [{:bar=>2, :foo=>"foo"}, {:bar=>3, :foo=>"foo"}, {:bar=>5, :foo=>"foo"}] >> a.sort {|x,y| y[:bar]<=>x[:bar]} => [{:bar=>5, :foo=>"foo"}, {:bar=>3, :foo=>"foo"}, {:bar=>2, :foo=>"foo"}]المصدر اقتباس
السؤال
ali_agha
لدي المصفوفة التالي:
أريد أن أقوم بفرز هذه المصفوفة تنازليا حسب قيمة :bab في كل سطر، فما هي أفضل طريقة للفرز ؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.