我有一個散列{:a => b},我想向該鍵添加一個值,並將其轉換爲一個保持前一個值的數組。紅寶石散列值到數組數組
那麼結果將是{:A => [B,C]}
是否有更好的方法來做到這一點不是通過哈希迭代?
我有一個散列{:a => b},我想向該鍵添加一個值,並將其轉換爲一個保持前一個值的數組。紅寶石散列值到數組數組
那麼結果將是{:A => [B,C]}
是否有更好的方法來做到這一點不是通過哈希迭代?
試試這個。
h = {a: b}
h[:a] = ((a[:a].is_a? Array) ? a[:a] : [a[:a]]) << c
原始問題沒有提及'b'是否可能已經是一個數組。如果可能的話,您可能需要添加支票。 – 2013-02-27 14:35:02
@DaveS。思考一下。將更新答案 – 2013-02-27 14:42:26
簡單的解決辦法是建立一個數組哈希表:
h = {}
h[:a] = []
h[:a].push(b)
h[:a].push(c)
我的意思是:即使只有一個值使用數組。這使得處理更容易。
否:-)無論如何你必須迭代,所以你的問題是什麼? 「什麼是最短路徑......」? – mliebelt 2013-02-27 14:25:40