首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从散列数组中删除散列?

从散列数组中删除散列?
EN

Stack Overflow用户
提问于 2014-02-04 01:30:01
回答 1查看 131关注 0票数 0
代码语言:javascript
复制
h = {
    :vehicle => [
        [0] {
            :make => "Honda",
            :year => 2010
        },
        [1] {
            :make => "Kia",
            :year => 2014
        },
        [2] {
            :make => "Saturn",
            :year => 2005
        }
    ]
}

我想删除{:make=>"Kia", :year=>2014},以便h是:

代码语言:javascript
复制
h = {
    :vehicle => [
        [0] {
            :make => "Honda",
            :year => 2010
        },
        [1] {
            :make => "Saturn",
            :year => 2005
        }
    ]
}

我试过:

代码语言:javascript
复制
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

,我头疼的地方是:

代码语言:javascript
复制
h[:vehicle].include?("Kia") 
 #=> false 

h[:vehicle][1] 
 #=> {:make=>"Kia", :year=>2014} 

h[:vehicle][1].include?("Kia") 
 #=> false

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-04 01:32:34

代码语言:javascript
复制
h[:vehicle].delete_if { |h| h[:make] == 'Kia' }

将返回一个h副本与起亚删除。请注意,虽然这是一种有点奇怪的方法,但您的第一个示例确实对我有用。请记住,您必须查看返回的值才能看到结果-- delete_if不会修改原始哈希。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21541353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档