我有哈希哈希,我想要完成的是根据相同值的内部哈希计数的计数对哈希进行排序。所以,让我们说这是我的哈希。
hash = {
"Run1"=>{"March 24, 2013"=>"failed", "March 23, 2013"=>"failed", "March 21, 2013"=>"failed", "March 19, 2013"=>"passed", "March 18, 2013"=>"passed"},
"Run2"=>{"March 24, 2013"=>"failed", "March 23, 2013"=>"failed", "March 21, 2013"=>"failed", "March 19, 2013"=>"failed", "March 18, 2013"=>"failed"}
}
我想对哈希进行排序,以便Run1出现在Run1之前,因为我试图按运行“失败”的次数排序
我想我需要像
这样的东西hash.sort_by{|key, innerHash| innerHash.values.count('failed')}
非常感谢任何帮助或建议
答案 0 :(得分:3)
小修复:
hash.sort_by { |_,h| -h.values.count('failed') } # notice force negative
......并且应该工作。请记住sort_by
总是返回一个数组,所以也许你想要:
sorted_hash = Hash[hash.sort_by { |_,h| -h.values.count('failed') }]