首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果键与rails匹配,则从散列中删除一个值

如果键与rails匹配,则从散列中删除一个值
EN

Stack Overflow用户
提问于 2016-12-23 14:03:38
回答 4查看 1.1K关注 0票数 3

我已经看到了许多答案,比如删除任何值为nil""的键,但这不是我想要的。

我有一个这样的散列

代码语言:javascript
复制
{"firstname"=>"Jie",
 "lastname"=>"Pton",
 "email"=>"jami4@yahoo.com",
 "country_id"=>"1",
 "payment_method"=>"0",
 "insight_id"=>"",
 "password"=>""}

我只想从散列中删除密码属性,如果它为空,则NOT ALL为空

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-12-23 14:09:37

更通用的解决方案:对于作为输入给出的散列(我假设它是params,所以让我们称其为params)和在为空时要删除的字段列表:

代码语言:javascript
复制
TO_REMOVE_EMPTY = %w|password|
params.delete_if { |k, v| TO_REMOVE_EMPTY.include?(k) && v.empty? }
票数 4
EN

Stack Overflow用户

发布于 2016-12-23 14:06:16

代码语言:javascript
复制
hash.delete('password') if hash['password'].blank?
票数 1
EN

Stack Overflow用户

发布于 2016-12-23 16:08:54

您也可以使用此解决方案:

代码语言:javascript
复制
hash.reject { |k,v| v.nil? || v.empty? }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41295992

复制
相关文章

相似问题

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