【发布时间】:2011-02-02 04:23:46
【问题描述】:
我有一个计数器哈希,我试图按计数排序。我遇到的问题是默认的 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 也会出现在列表的首位。当试图显示谁拥有最高数量时,这让我的生活变得困难。 :)
关于如何按数值大小对哈希(甚至数组)进行排序有什么想法吗?
感谢您的帮助。
【问题讨论】:
-
你使用什么 ruby 版本?你的排序结果很奇怪