ruby如何使用新键和数组中的值生成哈希

ruby如何使用新键和数组中的值生成哈希,ruby,arrays,hash,Ruby,Arrays,Hash,我有这样一个数组: arr = [["food", "eggs"],["beverage", "milk"],["desert", "cake"]] hash = [{"category": "food", "item":"eggs"}, {"category": "beverage", "item":"milk"} {"category": "desert", "item":"cake"}] 我需要将它转换成一个散列数组,其中键是自定义的和新的,键的

我有这样一个数组:

arr = [["food", "eggs"],["beverage", "milk"],["desert", "cake"]]
hash = [{"category": "food", "item":"eggs"},
          {"category": "beverage", "item":"milk"}
          {"category": "desert", "item":"cake"}]
我需要将它转换成一个散列数组,其中键是自定义的和新的,键的值是数组中的值,如下所示:

arr = [["food", "eggs"],["beverage", "milk"],["desert", "cake"]]
hash = [{"category": "food", "item":"eggs"},
          {"category": "beverage", "item":"milk"}
          {"category": "desert", "item":"cake"}]
我该怎么做? 谢谢你

arr=[[“食品”、“鸡蛋”]、[“饮料”、“牛奶”]、[“沙漠”、“蛋糕”]]
arr.inject([])do | hash(v1,v2)|
hash
arr=[[“食品”、“鸡蛋”]、[“饮料”、“牛奶”]、[“沙漠”、“蛋糕”]]
arr.inject([])do | hash(v1,v2)|
散列使用:

使用:


谢谢你的意见。两种解决方案都很有效。谢谢你提出这个问题的建议,下次我会记住的,谢谢你的意见。两种解决方案都很有效。谢谢你提出这个问题的建议,下次我会记住的
arr = [["food", "eggs"], ["beverage", "milk"], ["desert", "cake"]]

arr.map { |category, item| { category: category, item: item } }
# => [
#      {:category=>"food", :item=>"eggs"},
#      {:category=>"beverage", :item=>"milk"},
#      {:category=>"desert", :item=>"cake"}
#    ]
hash = array.map {|ary| Hash[[:category, :item].zip ary ]}