Ruby on rails Ruby将值散列到值数组中

Ruby on rails Ruby将值散列到值数组中,ruby-on-rails,ruby,ruby-on-rails-3,hash,Ruby On Rails,Ruby,Ruby On Rails 3,Hash,我有一个散列{:a=>b},我想向该键添加一个值,并将其转换为一个保留前一个值的值数组 结果是{:a=>[b,c]} 有没有比遍历散列更好的方法呢?简单的解决方案是创建数组的散列: h = {} h[:a] = [] h[:a].push(b) h[:a].push(c) 我的意思是:即使只有一个值,也要使用数组。这使得处理更容易。简单的解决方案是创建数组散列: h = {} h[:a] = [] h[:a].push(b) h[:a].push(c) 我的意思是:即使只有一个值,也要使用数

我有一个散列{:a=>b},我想向该键添加一个值,并将其转换为一个保留前一个值的值数组

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


有没有比遍历散列更好的方法呢?

简单的解决方案是创建数组的散列:

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

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

简单的解决方案是创建数组散列:

h = {}
h[:a] = []
h[:a].push(b)
h[:a].push(c)
我的意思是:即使只有一个值,也要使用数组。这使操作更容易。

试试这个

h = {a: b}
h[:a] = ((a[:a].is_a? Array) ? a[:a] : [a[:a]]) << c
h={a:b}
h[:a]=((a[:a].是数组吗)?a[:a]:[a[:a]])试试这个

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

h[:a]=((a[:a].是数组吗)?a[:a]:[a[:a]]否:-)您必须进行迭代,那么您的问题是什么?“到达……的最短路径是什么?”否:-)无论如何,您必须迭代,那么您的问题是什么?“到达……的最短路径是什么?”最初的问题没有提到
b
是否可能已经是一个数组。如果可能的话,您可能需要添加一个检查。原始问题没有提到
b
是否可能已经是一个数组。如果可能的话,你可以加一张支票。