Tôi có một băm truy cập mà tôi đang cố sắp xếp theo số lượng. Vấn đề tôi đang chạy vào là hàm Hash.sort mặc định sắp xếp các số như chuỗi thay vì theo kích thước số.Làm thế nào để sắp xếp giá trị số băm của Ruby?
tức Hash Given:
metrics = {"sitea.com" => 745, "siteb.com" => 9, "sitec.com" => 10 }
Chạy mã này:
metrics.sort {|a1,a2| a2[1]<=>a1[1]}
sẽ trả về một mảng được sắp xếp:
[ 'siteb.com', 9, 'sitea.com', 745, 'sitec.com', 10]
Mặc dù 745 là một con số lớn hơn 9, 9 sẽ xuất hiện đầu tiên trong danh sách. Khi cố gắng thể hiện ai là người đứng đầu, điều này khiến cuộc sống của tôi trở nên khó khăn. :)
Bất kỳ ý tưởng nào về cách sắp xếp một băm (hoặc một mảng thậm chí) theo kích thước giá trị số?
Tôi đánh giá cao bất kỳ trợ giúp nào.
gì phiên bản ruby nào bạn sử dụng? kết quả sắp xếp của bạn rất lạ – fl00r