Ruby Hash:根据值(值为数组)排序哈希值

时间:2011-05-20 23:40:26

标签: ruby arrays hash

我希望根据哈希值的重新排序返回一个新的哈希值。这些值本身就是整数数组。

例如:

hsh = {"c2" => [44,2], "c1" => [11,33], "c9" => [23,7]}

我希望能够根据值中的值0或值1返回重新排序的哈希值。

非常感谢任何帮助 - 谢谢大家。

1 个答案:

答案 0 :(得分:5)

从问题的本质来看,我认为这是针对ruby 1.9。

p Hash[hsh.sort_by{|k, v| v[0]}]
# => {"c1"=>[11, 33], "c9"=>[23, 7], "c2"=>[44, 2]}

p Hash[hsh.sort_by{|k, v| v[1]}]
# => {"c2"=>[44, 2], "c9"=>[23, 7], "c1"=>[11, 33]}