【发布时间】:2015-06-08 14:14:20
【问题描述】:
我想得到一个哈希数组。
我从一组代码开始:
@codes = ['123', '456', '789']
我获取这些代码中的每一个并使用它们访问一个 API,它会返回我在循环中解析为变量的值,如下所示:
@codes.each do |x|
@y = x.get_some_data
@brand = @y[brand]
@size = @y[size]
end
然后我想把这些数据放到一个哈希数组中
merged_array = []
final_hash = @codes.map{|code| {:code => code, :brand=> @brand, :size=> @size}
merged_array << final_hash
在一个完美的世界中,在merged_array 中得到如下所示的哈希:
{:code => '123', :brand=> 'nike', :size=> 8 }
{:code => '456', :brand=> 'adidas', :size=> 4 }
{:code => '789', :brand=> 'converse', :size=> 10 }
但是当我运行我的脚本时,它会正确映射代码,但会覆盖@brand、@size 变量并只返回最后一个循环的值。
不确定如何将我的所有变量放入哈希中?
【问题讨论】:
-
而不是
codes.each部分,只需将所有这些逻辑直接放在map方法中,也可能不需要实例变量,因为无论如何您都会丢弃这些数据。
标签: ruby-on-rails arrays ruby hash