我有散列的一個這樣的數組:清理哈希數組中多個值的方法?
data = [
{group: "A", result: 1},
{group: "B", result: 1},
{group: "A", result: 0},
{group: "A", result: 1},
{group: "B", result: 1},
{group: "B", result: 1},
{group: "B", result: 0},
{group: "B", result: 0}
]
集團將僅是A或B,並且結果將僅是1或0。我要計數的結果多少次是0或1爲每個組,即得到了提示,像這樣:
A: result is "1" 2 times
result is "0" 1 time
B: result is "1" 3 times
result is "0" 2 times
我想存儲的實際效果在嵌套散列,像:
{ a: { pass: 2, fail: 1 }, b: { pass: 3, fail: 2 } }
但這可能不是BES不管怎樣,所以我在這裏接受其他想法。
什麼是最簡潔的方式來做到這一點在Ruby中,而只有一次數據迭代?以某種方式使用data.inject
或data.count
?
我覺得是需要一個小的調整:對'data = [{group:「A」,result:1}]','pass_fail_hash data#=> {:a => {:pass => 1,:fail => nil}}'。 – 2015-01-10 02:44:49
@CarySwoveland謝謝你指出這一點。現在我已經解決了這個問題,所以'nil'值恰當地爲'0'。 – engineersmnky 2015-01-12 16:35:17