我有哈希散列,我试图完成的是根据相同值的内部哈希计数的计数排序哈希。所以我们假设这是我的散列。红宝石排序哈希通过内部哈希计数相同的值
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第一。如果你想首先失败,你应该算'通过'。 – 2013-03-25 19:28:42
或者如果你有其他状态比传递/失败,那么你可以颠倒一个数组或传递负值。 – Hauleth 2013-03-25 19:36:58
您的代码将按升序返回它们,所以只需将返回的数组反转即可。 hash.sort_by {| key,innerHash | innerHash.values.count('failed')}。 – engineersmnky 2013-03-25 19:47:13