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谢谢你的帮助。
发布于 2014-02-04 01:32:34
h[:vehicle].delete_if { |h| h[:make] == 'Kia' }将返回一个h副本与起亚删除。请注意,虽然这是一种有点奇怪的方法,但您的第一个示例确实对我有用。请记住,您必须查看返回的值才能看到结果-- delete_if不会修改原始哈希。
https://stackoverflow.com/questions/21541353
复制相似问题