我有一个计数哈希表,我想要按照计数值进行排序。我遇到的问题是默认的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将首先出现在列表中。当试图展示谁拥有最高计数时,这使我的生活变得困难 :)
有什么想法可以按数字值大小对哈希(或数组甚至)进行排序吗?
感激任何帮助。