如何检查哈希中是否存在特定密钥?


Answers:


952

Hashkey?方法会告诉您是否存在给定的密钥。

session.key?("user")

不错:“ string”访问器也适用于JSON.parse解析对象:)
Bijan

2
这对我不起作用,:user方法代替了
Akash Agarwal



28

已经很晚了,但是最好使用符号作为键:

my_hash = {}
my_hash[:my_key] = 'value'

my_hash.has_key?("my_key")
 => false 
my_hash.has_key?("my_key".to_sym)
 => true 

my_hash2 = {}
my_hash2['my_key'] = 'value'

my_hash2.has_key?("my_key")
 => true 
my_hash2.has_key?("my_key".to_sym)
 => false 

但是,当创建散列时,如果您将字符串作为键传递,则它将在键中搜索字符串。

但是,当创建哈希时,您将符号传递为键,然后传递has_key吗?将使用符号搜索键。


如果您使用的是Rails,则Hash#with_indifferent_access可以避免这种情况。双方hash[:my_key]hash["my_key"]会指向相同的记录


6
如果您使用的是Rails,则Hash#with_indifferent_access可以避免这种情况。双方:my_key"my_key"会指向同一个纪录
德文-帕森斯


3

另一种方式在这里

hash = {one: 1, two: 2}

hash.member?(:one)
#=> true

hash.member?(:five)
#=> false

0

在Rails 5中,has_key?方法检查密钥是否存在于哈希中。使用它的语法是:

YourHash.has_key? :yourkey
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.