Thi*_*i K 3 ruby arrays ruby-on-rails case-statement switch-statement
我正在根据哈希值分配一组值.
我必须根据传入的哈希键的值为另一个哈希键分配值.
传入哈希中有超过10个键(因此超过10个案例).
我想最小化代码.是否有任何替代方法可以缩短代码.
@hash1.each do |h1|
case h1.mapped_field
when 'value1'
@hash2[h1.field_id] = value_1
when 'value2'
@hash2[h1.field_id] = value_2
when 'value3'
@hash2[h1.field_id] = value_3
when 'value4'
@hash2[h1.field_id] = value_4
when 'value5'
@hash2[h1.field_id] = value_5
end
end
Run Code Online (Sandbox Code Playgroud)
Ser*_*sev 10
这是另一种选择:不使用案例/何时使用.
mapping = {
'value1' => value_1,
'value2' => value_2,
...
}
@array1.each do |a1|
@array2[a1.field_id] = mapping[a1.mapped_field]
end
Run Code Online (Sandbox Code Playgroud)
作为一个令人愉快的奖励,您现在可以以编程方式构建映射(通过从文件/数据库或类似的东西加载它).
| 归档时间: |
|
| 查看次数: |
427 次 |
| 最近记录: |