我正试图找出如何合并2个对象,例如jquery扩展。
我已经读到可以使用merge来执行此操作,但是它似乎不适用于深度嵌套的对象。请注意以下示例中结果中user-agent
和cookie
的不存在。
例如
defaults = {
'headers' => {
'content-type' => 'application/x-www-form-urlencoded',
'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'user-agent' => 'my test client',
'cookie' => ''
},
'level1' => {
'desc' => 'im from level 1',
'title' => '1',
'level2' => {
'title' => '2'
}
}
}
overrides = {
'headers' => {
'content-type' => 'my new type',
'access-token' => 'hi there'
},
'level1' => {
'title' => 'one',
'level2' => {
'desc' => 'im from level 2',
'title' => 'two'
}
}
}
result = defaults.merge(overrides)
{
"headers"=>{
"content-type"=>"my new type",
"access-token"=>"hi there"
},
"level1"=>{
"title"=>"one",
"level2"=>{
"desc"=> "im from level 2",
"title"=>"two"
}
}
}
我可以用什么来使它与深度嵌套的对象一起工作,而不仅仅是简单的哈希?
Here's a REPL显示测试用例。