ฉันมีเคาน์เตอร์แฮชที่ฉันพยายามเรียงลำดับตามจำนวน ปัญหาที่ฉันพบคือฟังก์ชัน Hash.sort ที่เป็นค่าเริ่มต้นเรียงลำดับหมายเลขเช่นสตริงแทนที่จะเป็นขนาดตัวเลข
เช่นได้รับกัญชา:
metrics = {"sitea.com" => 745, "siteb.com" => 9, "sitec.com" => 10 }
ใช้รหัสนี้:
metrics.sort {|a1,a2| a2[1]<=>a1[1]}
จะส่งคืนอาร์เรย์ที่เรียงลำดับแล้ว:
[ 'siteb.com', 9, 'sitea.com', 745, 'sitec.com', 10]
แม้ว่า 745 จะเป็นตัวเลขที่มากกว่า 9 แต่ 9 จะปรากฏขึ้นเป็นลำดับแรกในรายการ เมื่อพยายามแสดงให้เห็นว่าใครมีค่าสูงสุดนี่ทำให้ชีวิตของฉันลำบาก :)
แนวคิดใด ๆ เกี่ยวกับวิธีเรียงลำดับแฮช (หรืออาร์เรย์) ตามขนาดค่าตัวเลข
ฉันขอขอบคุณความช่วยเหลือใด ๆ