【发布时间】:2014-03-16 18:41:34
【问题描述】:
我有以下数组
campaign_names = ["Air Duct Cleaning", "Carpet Cleaning", "Brand Terms", "Upholstery Cleaning"]
impressions = ["358", "1404", "1853", "184"]
clicks = ["3", "6", "53", "0"]
conversions = ["0", "0", "2", "0"]
我想在散列中创建一个散列,以便campaign_names 元素是嵌套散列,然后印象、点击和转换是其中的键,值是每个元素的数组元素。 所需的输出是 -
Hash = {:Air_Duct_Cleaning => { :impressions => "358", :clicks => "3", :conversions => "0" }, :Carpet_Cleaning => { :impressions => "1404", :clicks => "6", :conversions => "0" }, :Brand_Terms => { :impressions => "1853", :clicks => "53", :conversions => "2" }, :Upholstery_Cleaning => { :impressions => "184", :clicks => "0", :conversions => "0" }}
我一直在尝试使用 #zip 来组合它们,然后我希望使用 Hash[] 但最终得到一个空哈希(似乎我只能使用 2 个数组来做到这一点)
zipped = campaign_names.zip(impressions, clicks, conversions)
=> [["Air Duct Cleaning", "358", "3", "0"], ["Carpet Cleaning", "1404", "6", "0"], ["Brand Terms", "1853", "53", "2"], ["Upholstery Cleaning", "184", "0", "0"]]
final_hash = Hash[zipped]
=> {}
然后我尝试使用#each_with_index,但我得到的输出只是我正在调用它的数组
hash = {}
campaign_names.each_with_index { |key, index| hash[key] = values[index] }
=> ["Air Duct Cleaning", "Carpet Cleaning", "Brand Terms", "Upholstery Cleaning"]
【问题讨论】:
标签: ruby-on-rails ruby arrays hash