【发布时间】:2013-12-17 03:03:36
【问题描述】:
我有两个哈希值..
[
{
"title"=>"CEO",
"name"=>"George",
"columns"=>[
{
"display_name"=> "Salary",
"value"=>"3.85",
}
, {
"display_name"=> "Bonus",
"value"=>"994.19",
}
, {
"display_name"=> "Increment",
"value"=>"8.15",
}
]
}
]
data2 = JSON.parse(data2)['info']
puts data2
[
{
"title"=>"CEO",
"name"=>"George",
"columns"=>[
{
"display_name"=> "Address",
"value"=>"Albany",
}
, {
"display_name"=> "Phone",
"value"=>"47123",
}
, {
"display_name"=> "Mobile",
"value"=>"784123",
}
]
}
]
如果在两个哈希中都满足 name = george 等条件,我想将“列”中的值加入一个哈希中
所需的输出是这样的
[
{
"title"=>"CEO",
"name"=>"George",
"columns"=>[
{
"display_name"=> "Salary",
"value"=>"3.85",
}
, {
"display_name"=> "Bonus",
"value"=>"994.19",
}
, {
"display_name"=> "Increment",
"value"=>"8.15",
}
, {
"display_name"=> "Address",
"value"=>"Albany",
}
, {
"display_name"=> "Phone",
"value"=>"47123",
}
, {
"display_name"=> "Mobile",
"value"=>"784123",
}
]
}
]
我尝试过的是压缩、合并、注入、连接、哈希深度合并,但我能得到的最好的方法是丢弃所有第一个值并存储第二个的新哈希
【问题讨论】:
-
我会说您需要为每条记录提供一个标识符,以便在合并时进行比较。
-
"name"=>"George" - 可能是标识符?或匹配器 - 两者中的 id 名称相同然后将列的值转储到第一个哈希中...
标签: ruby-on-rails ruby hash merge nested