簡體   English   中英

將元素添加到散列中的數組

[英]Add elements to an array in a hash

我有一個帶有表格的文件,顯示了一些用戶之間的關系:

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"]]}

一旦您設置了months['1'] = ['a'] ,該鍵的值就是一個數組。

您想將'b'推入該數組。

irb> months = Hash.new
=> {}
irb> months['1'] = ['a']
=> ["a"]
irb> months['1'] << 'b'
=> ["a", "b"]

當您執行<<您必須確保該值是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"]}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM