我有一个2D数组,每行如下:
['John', 'M', '34']
我想映射到一个哈希数组,每个哈希像:
{:Name=>"John", :Gender=>"M", :Age=>"34"}
这样做有一种优雅的方式吗?
array_of_rows.map { |n,g,a| { Name: n, Gender: g, Age: a } }
Run Code Online (Sandbox Code Playgroud)
要么
array_of_rows.map { |row| %i{Name Gender Age}.zip(row).to_h }
Run Code Online (Sandbox Code Playgroud)
它们会产生相同的结果,所以选择一个你觉得更清楚的结果.例如,给定此输入:
array_of_rows = [
['John', 'M', '34'],
['Mark', 'M', '49']
]
Run Code Online (Sandbox Code Playgroud)
表达式将产生此输出:
[{:Name=>"John", :Gender=>"M", :Age=>"34"},
{:Name=>"Mark", :Gender=>"M", :Age=>"49"}]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1834 次 |
| 最近记录: |