gpt4 book ai didi

ruby-on-rails - 与另一个嵌套哈希相比,从嵌套哈希中查找丢失的键

转载 作者:行者123 更新时间:2023-12-04 06:20:46 24 4
gpt4 key购买 nike

我有两个嵌套的哈希(hash1、hash2),它们碰巧是从 yml 文件生成的哈希。我需要找到存在于 hash1 但不在 hash2 中的所有键(完整的父链)。

给定这两个哈希值,输出应该是 hash_diff。

hash1 = {"A" => 1, "B" => {"C" => 2, "D" => 3} , "E" => 1} 
hash2 = {"A" => 1, "B" => {"C" => 2} }
hash_diff = {"B" => {"D" => 3}, "E" => 1}

请注意,我想要像散列差异这样的东西,它只考虑键,而不考虑值。

最佳答案

这是解决方案。虽然我修改了原来的hash1
所以用法是:

hash_diff(hash1,hash2)
hash_diff_var = hash1

def self.hash_diff_helper(hash1,hash2)
hash1.each_pair do |k,v|
if v.is_a?(Hash) && hash2.key?(k)
hash_diff_helper(v,hash2[k])
elsif !v.is_a?(Hash) && hash2.key?(k)
hash1.delete(k)
end
end
end

def self.hash_diff(hash1,hash2)
hash_diff_helper(hash1,hash2)
hash1.select!{|k,v| v.present?}
end

关于ruby-on-rails - 与另一个嵌套哈希相比,从嵌套哈希中查找丢失的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24889759/

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