0

我有一个哈希值,我想要完成的是根据内部哈希值的相同值的计数对哈希值进行排序。所以假设这是我的哈希。

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"} 
       }

我想对哈希进行排序,以便 Run2 出现在 Run1 之前,因为我试图按运行“失败”的次数进行排序

我想我需要类似的东西

hash.sort_by{|key, innerHash| innerHash.values.count('failed')}

非常感谢任何帮助或建议

4

1 回答 1

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') }]
于 2013-03-25T19:45:02.187 回答