gpt4 book ai didi

ruby - 如何在不丢失值的情况下合并两个哈希值

转载 作者:数据小太阳 更新时间:2023-10-29 08:32:03 24 4
gpt4 key购买 nike

我有两个这样的哈希值。

a = {foo: {first: 1}, bar: {first: 2}}
b = {foo: {second: 3}, bar: {second: 4}}

我期望像这样的 a.merge b 的结果。

{foo: {first: 1, second: 3}, bar: {first: 2, second: 4}}

但是 a.merge b 返回 {:foo=>{:second=>3}, :bar=>{:second=>4}}

如何在不丢失值的情况下合并两个哈希值?

最佳答案

如果您的散列格式总是看起来像您指定的那样,则以下内容将起作用:

a = {foo: {first: 1}, bar: {first: 2}}
b = {foo: {second: 3}, bar: {second: 4}}
a.each_with_object(b) { |(k,v),x| x[k].merge!(v) }
# => {:foo=>{:second=>3, :first=>1}, :bar=>{:second=>4, :first=>2}}

否则使用ActiveSupportdeep_merge!

关于ruby - 如何在不丢失值的情况下合并两个哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23464093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com