2

是否可以服用Hash红宝石,例如

{"aaa" => 255, "abc" => 255, "acb" => 255, "dcv" => 2300, "abe" => 1}

并把它分类成Array这样的

[["dcv", 2300], ["aaa", 255], ["abc" => 255], ["acb" => 255], ["abe", 1]]

使用sort_by方法?这种排序应该产生一个数组数组,首先按出现的数字按降序排序,然后在平局上,它应该按字符串的字母顺序按升序排序。

4

2 回答 2

5
h = {"aaa" => 255, "abc" => 255, "acb" => 255, "dcv" => 2300, "abe" => 1}
h.sort_by { |k,v| [-v,k] }
# => [["dcv", 2300], ["aaa", 255], ["abc", 255], ["acb", 255], ["abe", 1]]
于 2013-04-13T22:39:14.447 回答
0

另一种解决方法

h = h.sort_by { |k,v| v }.reverse

puts h.inspect
于 2016-03-29T00:50:09.907 回答