我有一个类似的散列
name = ['Jhon Doe', 'Jane Doe' , 'David']
role = ['Admin', 'Accountant', 'Sales']
我想让它看起来像这个
data = [
{name => 'Jhon Doe', role => 'Admin'},
{name => 'Jane Doe', role => 'Accountan'},
{name => 'David', role => 'Sales'}
]
能做这样的事吗?
这里有一个相当简单的解决方案:
name.zip(role).map {|name, role| { name:, role: }}
#=> [
# { name: 'Jhon Doe', role: 'Admin' },
# { name: 'Jane Doe', role: 'Accountant' },
# { name: 'David', role: 'Sales' }
# ]
使用map
和with_index
:可以获得所需的结果
name.map.with_index { |name_i, index| { name: name_i, role: role[index] } }
此处的名称和角色应该是array
,而不是hash
name = ['Jhon Doe', 'Jane Doe' , 'David']
role = ['Admin', 'Accountant', 'Sales']
您可以使用以下内容生成输出哈希
my_hash_array = []
name.size.times{|i| my_hash_array << {name: name[i], role: role[i]} }
我希望这对你有帮助。