我有此哈希:
{
:items => {
:"cust.category" => "Jackets,Belts & Buttons",
:"items.receive_dt" => "2 years",
:"prdcts.brand" => "Armani"
}
}
我正在尝试更改此哈希使其变为->
{
:items => ["cust.category=Jackets,Belts & Buttons",
"items.receive_dt=2 years",
"prdcts.brand=Armani"]
}
我尝试了几件事,但无法正确完成
h = {
:items=>{
:"cust.category"=>"Jackets,Belts & Buttons",
:"items.receive_dt"=>"2 years",
:"prdcts.brand"=>"Armani"
}
h.transform_values { |g| g.map { |a| a.join('=') } }
#=> {:items=>["cust.category=Jackets,Belts & Buttons",
# "items.receive_dt=2 years",
# "prdcts.brand=Armani"]
# }
您已将此标签标记为Ruby,但是您显示的语法不是有效的Ruby代码...但是,假设您正在Ruby中寻找答案:-)
您的哈希看起来像:
hash = {
'items' => {
'cust.category' => 'Jackets,Pants,Hoodies & Sweatshirts,Accessories',
'items.receive_dt' => '2 years',
'prdcts.brand' => 'Armani'
}
}
然后您可以使用map
更改哈希:
hash['items'] = hash['items'].keys.map { |key| "#{key}=#{hash['items'][key]}" }
然后,最后的hash
看起来像:
{"items"=>["cust.category=Jackets,Pants,Hoodies & Sweatshirts,Accessories", "items.receive_dt=2 years", "prdcts.brand=Armani"]}
Ruby 2.7,Hash#to_h
hash = {
:items => {
:"cust.category" => "Jackets,Belts & Buttons",
:"items.receive_dt" => "2 years",
:"prdcts.brand" => "Armani"
}
}
pp hash.to_h { |k, v| [k, v.map { |e| e.join('=') }] }
输出
{:items=>
["cust.category=Jackets,Belts & Buttons",
"items.receive_dt=2 years",
"prdcts.brand=Armani"]
}