2012-12-01 111 views
2

我已經構建了一個表單標記並獲取了從用戶中選擇的值。這就是我得到:如何將散列中的字符串轉換爲整數

params[:user_answer_ids] = {"170"=>["599"], "162"=>["561", "563", "565"], "160"=>["549", "550"]} 

現在我想所有的字符串轉換成該哈希爲int,如:

params[:user_answer_ids] = {170=>[599], 162=>[561, 563, 565], 160=>[549, 550]} 

我想轉換爲int,因爲我想比較問答IDS後來。目前,我必須在循環散列時使用to_i方法,所以我想知道是否有任何方法將所有字符串一次轉換爲int。

回答

3

你可以假的吧...

h={"170"=>["599"], "162"=>["561", "563", "565"], "160"=>["549", "550"]} 
h.default_proc = proc{|h,k| h.key?(k.to_s) ? h[k.to_s].map(&:to_i) : nil} 
p h[162] 

葉數據不變。

+0

非常感謝,它的工作原理:D – Thanh

+0

不應該只是最好的檢索密鑰,如果它不是'nil'把它轉換爲'to_i'? –

+0

我喜歡它,數據不變。 – Healer