我现在正在尝试删除哈希列表的嵌套哈希键几个小时。
我看到许多解决方案非嵌套哈希看起来像这样:
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"}}
啊。
关于ruby-on-rails - 如何从 Rails 中的哈希列表中删除嵌套键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16797617/