如何从 Rails 中的哈希列表中删除嵌套键

2024-01-03

我现在正在尝试几个小时来删除哈希列表的嵌套哈希键。 我看到许多解决方案非嵌套哈希,如下所示:

   sample_hash = {"key1" => "value1", "key2" => "value2"}
   sample_hash.except("key1") 

这导致:

  {"key2"=>"value2"}

但是,如果我尝试在具有嵌套键的哈希上使用 except 方法,那么它不起作用。 这是我的代码:

  nested_hash = {"key1"=>"value1", "key2"=>{
                                           "nested_key1"=>"nestedvalue1",
                                           "nested_key2"=>"nestedvalue2"
                                           }
                }

  nested_hash.except("nested_key2")

except() 方法返回没有任何更改的nested_hash。我一直在寻找如何将嵌套哈希键传递给 except 方法的解决方案,但找不到任何东西。是否可以将嵌套键传递给此方法,或者我应该使用其他方法从哈希列表中删除嵌套哈希键?


关于什么

Hash[nested_hash.map {|k,v| [k,(v.respond_to?(:except)?v.except("nested_key2"):v)] }]

=> {"key1"=>"value1", "key2"=>{"nested_key1"=>"nestedvalue1"}}

ugh.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Rails 中的哈希列表中删除嵌套键 的相关文章

随机推荐