我现在正在尝试删除哈希列表的嵌套哈希键几个小时.
我看到很多解决方案非嵌套哈希,如下所示:
我看到很多解决方案非嵌套哈希,如下所示:
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"}}
啊.