将Ruby Hash值转换为值数组

时间:2013-02-27 14:21:40

标签: ruby-on-rails ruby ruby-on-rails-3 hash

我有一个哈希{:a => b}我希望为该键添加一个值,并将其转换为保留前一个键的值数组。

结果将是{:a => [b,c]}

有没有比迭代哈希更好的方法呢?

2 个答案:

答案 0 :(得分:4)

试试这个。

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

答案 1 :(得分:0)

简单的解决方案是创建一个Hash of Arrays:

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

我的意思是:即使只有一个值使用数组。这使处理更容易。