カウントでソートしようとしているカウンターハッシュがあります。私が遭遇している問題は、デフォルトの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がリストの最初に表示されます。誰がトップカウントかを見せようとするとき、これは私の人生を難しくしています。:)
数値のサイズでハッシュ(または配列さえ)をソートする方法についてのアイデアはありますか?
どんな助けにも感謝します。
どのルビーバージョンを使用していますか?並べ替えの結果が非常に奇妙です
—
fl00r 2010年