我们说我有一系列值,例如["Sonya", "New York", "America"]
。然后我只使用密钥哈希,例如{name, state, country}
。如何将数组中的值分配给散列中的各自键?我知道这是一个循环,但我无法弄清楚。
答案 0 :(得分:2)
这样的东西?它使用Array#zip
合并values
和keys
中的每个元素,然后调用Array#to_h
将其转换为Hash
。
values = ["Sonya", "New York", "America"]
keys = [:name, :state, :country]
hash = keys.zip(values).to_h
# => {:name=>"Sonya", :state=>"New York", :country=>"America"}
答案 1 :(得分:1)
@ August答案的一个略微变体是:
[keys, values].transpose.to_h
#=> {:name=>"Sonya", :state=>"New York", :country=>"America"}
或
Hash[[keys, values].transpose]
适用于2.0之前的Ruby版本。请注意,transpose
是zip
的反面。