我有一个像这样的散列
h = {1 => {"inner" => 45}, 2 => {"inner" => 46}, "inner" => 47}
如何删除包含键“inner”的每一对?
你可以看到一些“内部”对直接出现在 h
中,而另一些成对出现在 h
请注意,我只想删除“内部”对,因此如果我对上述哈希调用我的批量删除方法,我应该得到
h = {1 => {}, 2 => {}}
因为这些对没有键 == "inner"
最佳答案
真的,这就是拒绝!用于:
def f! x
x.reject!{|k,v| 'inner' == k} if x.is_a? Hash
x.each{|k,v| f! x[k]}
end
关于Ruby:从散列的散列中删除特定键的所有实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10676608/