首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何检查散列中是否存在特定值?

如何检查散列中是否存在特定值?
EN

Stack Overflow用户
提问于 2012-01-26 08:17:51
回答 7查看 71.5K关注 0票数 33

我使用的是Rails,我有一个哈希对象。我想在散列中搜索一个特定值。我不知道与该值相关联的键。

如何检查散列中是否存在特定值?另外,如何找到与该特定值相关联的键?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-01-26 08:29:21

哈希包含Enumerable,因此您可以使用该模块上的许多方法来遍历哈希。它也有这个方便的方法:

代码语言:javascript
复制
hash.has_value?(value_you_seek)

要查找与该值关联的键,请执行以下操作:

代码语言:javascript
复制
hash.key(value_you_seek)

这个API documentation for Ruby (1.9.2)应该是有帮助的。

票数 65
EN

Stack Overflow用户

发布于 2018-07-20 02:10:16

检查散列中是否存在多个值的最简单方法是:

代码语言:javascript
复制
h = { a: :b, c: :d }
h.values_at(:a, :c).all? #=> true
h.values_at(:a, :x).all? #=> false

如果您还需要使用ActiveSupport检查Rails中的空白值:

代码语言:javascript
复制
h.values_at(:a, :c).all?(&:present?)

代码语言:javascript
复制
h.values_at(:a, :c).none?(&:blank?)

在没有ActiveSupport的Ruby中,可以通过传递一个块来完成同样的操作:

代码语言:javascript
复制
h.values_at(:a, :c).all? { |i| i && !i.empty? }
票数 8
EN

Stack Overflow用户

发布于 2012-01-26 08:34:23

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

https://stackoverflow.com/questions/9012388

复制
相关文章

相似问题

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