h = {
:vehicle => [
[0] {
:make => "Honda",
:year => 2010
},
[1] {
:make => "Kia",
:year => 2014
},
[2] {
:make => "Saturn",
:year => 2005
}
]
}
我要删除,{:make=>"Kia", :year=>2014}
因此h
是:
h = {
:vehicle => [
[0] {
:make => "Honda",
:year => 2010
},
[1] {
:make => "Saturn",
:year => 2005
}
]
}
我试过了:
h[:vehicle].delete_if{ |_,v| v == "Kia" }
#=> does nothing
h.delete_if{ |_,v| v == "Kia" }
#=> does nothing
h[:vehicle].tap { |_,v| v.delete("Kia") }
#=> does nothing
h.delete("Kia")
#=> nil
h[:vehicle].delete("Kia")
#=> nil
这是我头疼的地方:
h[:vehicle].include?("Kia")
#=> false
h[:vehicle][1]
#=> {:make=>"Kia", :year=>2014}
h[:vehicle][1].include?("Kia")
#=> false
谢谢您的帮助。
h[:vehicle].delete_if { |h| h[:make] == 'Kia' }
将返回h
删除了起亚的副本。请注意,尽管这样做有些奇怪,但是您的第一个示例确实对我有用。请记住,您必须查看返回的值才能看到结果-delete_if
不会修改原始哈希。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句