繁体   English   中英

仅使用键将数组中的值放入哈希中

[英]putting values from an array into a hash with only keys

假设我有一个值数组,例如["Sonya", "New York", "America"] 然后,我仅使用键(例如{name, state, country}进行哈希处理。 如何将数组中的值分配给哈希中的相应键? 我知道这是一个循环,但我无法弄清楚。

像这样吗 它使用Array#zip合并valueskeys每个元素,然后调用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版本。 注意, transposezip的反面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM