ruby – 如何合并两个哈希,没有新的键

如何合并两个哈希会导致没有新的键,这意味着合并会合并两个哈希存在的键?

例如,我想要以下内容:

h = {:foo => "bar"}
j = {:foo => "baz", :extra => "value"}

puts h.merge(j)    # {:foo => "baz"}

我正在寻找一个非常干净的方法,因为我目前的实现是相当凌乱.

您可以从第二个散列中删除不在第一个散列中的键,然后合并:

h.merge j.select { |k| h.keys.include? k }

与我编辑的替代方案不同,如果您决定将其更改为合并,这是安全的或更新.

翻译自:https://stackoverflow.com/questions/4825069/how-to-merge-two-hashes-with-no-new-keys

转载注明原文:ruby – 如何合并两个哈希,没有新的键