Joã*_*iel 17 ruby ruby-on-rails
我有一个具有属性的对象name和data等等.我想创建一个哈希,它使用名称作为键,数据(数组)作为值.我无法弄清楚如何减少下面的代码使用map.可能吗?
def fc_hash
fcs = Hash.new
self.forecasts.each do |fc|
fcs[fc.name] = fc.data
end
fcs
end
Run Code Online (Sandbox Code Playgroud)
Rei*_*chs 21
用途Hash[]:
Forecast = Struct.new(:name, :data)
forecasts = [Forecast.new('bob', 1), Forecast.new('mary', 2)]
Hash[forecasts.map{|forecast| [forecast.name, forecast.data]}]
# => {"mary"=>2, "bob"=>1}
Run Code Online (Sandbox Code Playgroud)
apn*_*ing 12
def fc_hash
forecasts.each_with_object({}) do |forecast, hash|
hash[forecast.name] = forecast.data
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11192 次 |
| 最近记录: |