[英]putting values from an array into a hash with only keys
假设我有一个值数组,例如["Sonya", "New York", "America"]
。 然后,我仅使用键(例如{name, state, country}
进行哈希处理。 如何将数组中的值分配给哈希中的相应键? 我知道这是一个循环,但我无法弄清楚。
像这样吗 它使用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"}
@August答案的一个细微变化是:
[keys, values].transpose.to_h
#=> {:name=>"Sonya", :state=>"New York", :country=>"America"}
要么
Hash[[keys, values].transpose]
适用于2.0之前的Ruby版本。 注意, transpose
是zip
的反面。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.