2012-10-14 59 views
1

我想從哈希數組加起來特定屬性中添加了特定的哈希屬性...這裏是一個例子數組:如何數組

@horses = [ 
     {name: "Runner1", odds: 4.00}, 
     {name: "Runner2", odds: 20.00}, 
     {name: "Runner3", odds: 4.00} 
     ] 

並正嘗試這個方法:

@total_odds = horses[:odds].inject(:+) 

但我得到一個錯誤:[ ]': can't convert Symbol into Integer

我在做什麼錯?提前非常感謝(剛開始學習)

+0

':賠率'不是一個整數。 – Hogan

回答

2
@horses.collect {|h| h[:odds] }.inject(:+) 
+0

固定。非常感謝......在幾分鐘內讓我回答。 –

+0

可能很高興還詳細說明爲什麼OP的嘗試不起作用。 –

1

,如果你需要解壓,你遍歷元素您可以使用塊與inject

@horses.inject(0) { |m, h| m + h[:odds] } 

當你這樣說:

@total_odds = horses[:odds].inject(:+) 

您試圖使用符號:odds作爲Array的索引;數組索引是整數,並且數組無法將符號轉換爲整數,因此會出現can't convert Symbol into Integer錯誤。

+0

+1用於解釋OP做錯了什麼。 –

+0

感謝您的額外信息! –