给定这两个哈希值,输出应为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 = hash1def 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 – 与另一个嵌套哈希相比,从嵌套哈希中查找丢失的密钥全部内容,希望文章能够帮你解决ruby-on-rails – 与另一个嵌套哈希相比,从嵌套哈希中查找丢失的密钥所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)