如何在Ruby中生成3个数组的哈希值?

如何在Ruby中生成3个数组的哈希值?,ruby,arrays,hashmap,Ruby,Arrays,Hashmap,假设我有3个相互映射的数组 fruit = ['apple', 'avocado', 'banana'] color = ['red', 'purple', 'yellow'] price = [30, 20, 50] 如何创建具有以下值的哈希数组 [ {fruit: 'apple', color: 'red', price: 30}, {fruit: 'avocado', color: 'purple', price: 20}, {fruit: 'banana', color: 'ye

假设我有3个相互映射的数组

fruit = ['apple', 'avocado', 'banana']
color = ['red', 'purple', 'yellow']
price = [30, 20, 50]
如何创建具有以下值的哈希数组

[
 {fruit: 'apple', color: 'red', price: 30},
 {fruit: 'avocado', color: 'purple', price: 20},
 {fruit: 'banana', color: 'yellow', price: 50}
]
您可以使用来交错数组,然后将它们映射到哈希数组中:

fruit.zip(color, price).map { |f, c, p| { fruit: f, color: c, price: p } }
# => [{:fruit=>"apple", :color=>"red", :price=>30}, 
# =>  {:fruit=>"avocado", :color=>"purple", :price=>20}, 
# =>  {:fruit=>"banana", :color=>"yellow", :price=>50}
# => ]
您可以使用来交错数组,然后将它们映射到哈希数组中:

fruit.zip(color, price).map { |f, c, p| { fruit: f, color: c, price: p } }
# => [{:fruit=>"apple", :color=>"red", :price=>30}, 
# =>  {:fruit=>"avocado", :color=>"purple", :price=>20}, 
# =>  {:fruit=>"banana", :color=>"yellow", :price=>50}
# => ]

刚刚注意到您的输入有
库存
,但您的输出有
价格
-给出了什么?@UriAgassi是的,应该是价格。哈希中的价格值是什么?不清楚,但rubies已通过编辑澄清。应该重新打开。刚刚注意到您的输入有
库存
,但您的输出有
价格
-给出了什么?@UriAgassi是的,应该是价格。哈希中的价格值是什么?不清楚,但rubies已通过编辑澄清。它应该重新打开。这不是OP要求的。@rubies您在这里的评论与您的问题相矛盾。另一个变体是将
[水果,颜色,价格]替换为
水果.zip(颜色,价格)
。这不是OP要求的。@rubies您在这里的评论与您的问题相矛盾。一个变体是将
[水果,颜色,价格]替换为
水果.zip(颜色,价格)