将元素添加到散列中的数组

时间:2021-07-21 20:29:03

标签: arrays ruby-on-rails

我有一个带有表格的文件,显示了一些用户之间的关系:

user1.  user2
a.       1
b.       1
c.       2
d.       2
e.       2

...

为此,我想创建这种哈希:

my_hash = {"1"=>​​ ['a','b'], "2"=> ['c', 'd', 'e']}

我现在遇到的问题是我找不到添加到数组的方法:

例如,我有 my_hash = {"1"=> ['a'], "2"=> ['c', 'd', 'e']},如何将 'b' 添加到键“1”?

我试过了

months = Hash.new

months['1'] = ['a']

months['1'] << ['b']

但我得到了这个结果:{"111-111"=>["1111-aaaa", ["2222-bbb"]]}

2 个答案:

答案 0 :(得分:1)

一旦您设置了 WHERE CAST(trade_date AS DATE) = DATEADD(DAY, -1, CAST(SYSDATETIME() AS DATE)) ,该键的值就是一个数组。

您想将 months['1'] = ['a'] 推入该数组。

'b'

答案 1 :(得分:0)

当您执行 << 时,您必须确保该值是 Array,否则会出现错误 NoMethodError (undefined method << for nil:NilClass)。使用更安全Array.wrap

h = {}
h['1'] = Array.wrap(h['1']).push('A')
h['1'] = Array.wrap(h['1']).push('B')
h['2'] = Array.wrap(h['2']).push('C')  

# h is  {"1"=>["A", "B"], "2"=>["C"]}
相关问题