按键降序排序哈希

时间:2013-11-14 16:01:51

标签: ruby sorting hash

我有以下哈希:

{"2013-08-12"=> 10, "2013-08-13"=> 20, "2013-11-11"=>30, "2013-11-14"=> 40} 

我想要做的是按密钥排序(日期格式为yyyy-mm-dd),按降序排列:

{"2013-11-14"=> 40, "2013-11-11"=>30, "2013-08-13"=> 20, "2013-08-12"=> 10} 

这可能吗?

1 个答案:

答案 0 :(得分:3)

有可能。

Hash[
  {"2013-08-12"=> 10, "2013-08-13"=> 20, "2013-11-11"=>30, "2013-11-14"=> 40}
  .sort_by{|k, _| k}.reverse
]

# => {
  "2013-11-14" => 40,
  "2013-11-11" => 30,
  "2013-08-13" => 20,
  "2013-08-12" => 10
}