最佳答案
我有一个计数器散列,我试图按计数排序。我遇到的问题是,默认的 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将出现在列表的第一位。当试图显示谁拥有最多数时,这让我的生活变得困难。:)
对于如何根据数值大小对散列(或数组偶数)进行排序有什么想法吗?
谢谢你的帮助。