Ruby:嵌套哈希在与另一个嵌套哈希合并时会丢失键和值

问题描述 投票:0回答:1

我有一个哈希-

h1 = {"a"=>{"x"=>"1","y"=>"2"}, "b"=>"z"}

我还有另一个哈希h2,它基本上具有h1中某些键的更新值>

h2 = {"a"=>{"x"=>"3"}, "b"=>"q"}

当我做-

h1.merge(h2)

我希望它会返回-

{"a"=>{"x"=>"3","y"=>"2"}, "b"=>"q"}

但是它实际上给了我-{"a"=>{"x"=>"3"}, "b"=>"q"}

要获得{"a"=>{"x"=>"3","y"=>"2"}, "b"=>"q"},我需要做什么?

我是不是

使用滑轨。红宝石版本为2.6.0

我有一个哈希-h1 = {“ a” => {“ x” =>“ 1”,“ y” =>“ 2”},“ b” =>“ z”}我还有另一个哈希h2当我...

ruby hash
1个回答
1
投票

Hash#merge的工作方式是一致的:如果两个键中都存在键,那么在所有情况下,合并哈希的键值都将替换第一个键。您需要递归合并。

© www.soinside.com 2019 - 2024. All rights reserved.