从添加新密钥的数组创建哈希(Creating hash from array adding new keys)
我有一个看起来像这样的数组:
data =[[01, 777], [02, 888]]现在我想从它创建一个哈希,如下所示:
n_clip = [{"name"=>"01", "rep"=>"777"},{"name"=>"02", rep=>"888"}]我试着这样做:
n_clip = [] data.each do |a| n_clip << Array[Hash[a.map {|| ["name", a.first]}], Hash[a.map {|| ["rep", a.last]}]] end但它没有用,因为我得到:
n_clip = [[{"name"=>"01"},{"rep"="777"}], [{"name"=>"01"},{"rep"="777"}]]并且最终它不是我所期望的。
I have an array looking like this:
data =[[01, 777], [02, 888]]Now I want to create a hash from it like below:
n_clip = [{"name"=>"01", "rep"=>"777"},{"name"=>"02", rep=>"888"}]I tried to do this in that way:
n_clip = [] data.each do |a| n_clip << Array[Hash[a.map {|| ["name", a.first]}], Hash[a.map {|| ["rep", a.last]}]] endbut it doesn't work because I get:
n_clip = [[{"name"=>"01"},{"rep"="777"}], [{"name"=>"01"},{"rep"="777"}]]and definitively it isn't what I expected.
最满意答案
data.map { |arr| { 'name' => arr[0], 'rep' => arr[1] } }我宁愿使用符号作为哈希键
data.map { |arr| { name: arr[0], rep: arr[1] } } data.map { |arr| { 'name' => arr[0], 'rep' => arr[1] } }i would rather use symbols as hash keys
data.map { |arr| { name: arr[0], rep: arr[1] } }更多推荐
发布评论