ruby-on-rails - Comment vérifier si une clé spécifique est présente dans un hachage ou non?




data-structures associative-array (5)

Je veux vérifier si la clé "user" est présente ou non dans le hash de la session. Comment puis-je faire ceci?

Notez que je ne veux pas vérifier si la valeur de la clé est nulle ou non. Je veux juste vérifier si la clé "utilisateur" est présente.


Answers

La key? Hash key? La méthode vous indique si une clé donnée est présente ou non.

session.key?("user")

Vous pouvez toujours utiliser la Hash#key? pour vérifier si la clé est présente dans un hachage ou non.

Sinon, il vous renverra false

hash =  { one: 1, two:2 }

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

hash.key?(:four)
#=> false

Alors que Hash#has_key? fait le travail, comme Matz note here , il a été déprécié en faveur de la Hash#key? .

hash.key?(some_key)

Dans les dernières versions de Ruby, l'instance Hash possède une key? méthode:

{a: 1}.key?(:a)
=> true

Veillez à utiliser la clé de symbole ou une clé de chaîne en fonction de ce que vous avez dans votre hachage:

{'a' => 2}.key?(:a)
=> false

Voici une autre façon de le faire:

arr = ['Cat', 'Dog', 'Bird']
e = 'Dog'

present = arr.size != (arr - [e]).size




ruby-on-rails ruby data-structures associative-array