2013-02-27 73 views
0

我有一個散列{:a => b},我想向該鍵添加一個值,並將其轉換爲一個保持前一個值的數組。紅寶石散列值到數組數組

那麼結果將是{:A => [B,C]}

是否有更好的方法來做到這一點不是通過哈希迭代?

+1

否:-)無論如何你必須迭代,所以你的問題是什麼? 「什麼是最短路徑......」? – mliebelt 2013-02-27 14:25:40

回答

4

試試這個。

h = {a: b} 
h[:a] = ((a[:a].is_a? Array) ? a[:a] : [a[:a]]) << c 
+0

原始問題沒有提及'b'是否可能已經是一個數組。如果可能的話,您可能需要添加支票。 – 2013-02-27 14:35:02

+0

@DaveS。思考一下。將更新答案 – 2013-02-27 14:42:26

0

簡單的解決辦法是建立一個數組哈希表:

h = {} 
h[:a] = [] 
h[:a].push(b) 
h[:a].push(c) 

我的意思是:即使只有一個值使用數組。這使得處理更容易。