【发布时间】:2013-03-26 03:50:29
【问题描述】:
我有一个哈希值,我想要完成的是根据内部哈希值的相同值的计数对哈希值进行排序。所以假设这是我的哈希。
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')}
非常感谢任何帮助或建议
【问题讨论】:
-
Run1 = 3,Run2 = 5 的“失败”计数。因此代码将 Run1 放在首位。如果你想把大部分失败放在第一位,你应该算“通过”。
-
或者,如果您有其他状态而不是通过/失败,那么您可以反转数组或传递负值。
-
您的代码将按升序返回它们,因此只需反转返回的数组即可。 hash.sort_by{|key, innerHash| innerHash.values.count('failed')}.reverse
标签: ruby