Проверьте, есть ли у хэша ключ, содержащий текст - PullRequest
5 голосов
/ 19 августа 2011

Я хочу проверить, есть ли у хэша ключ, содержащий текст.Это может быть не точный ключ, но ключ должен содержать (например, .include?) текст.Мое решение для этого:

some_hash.select {|k,v| k.include? "foo"}.empty?

Но это создаст еще один хеш.Я просто хочу проверить наличие ключа.Есть ли лучший способ сделать это?

Ответы [ 3 ]

10 голосов
/ 19 августа 2011

Это было бы немного лучше:

some_hash.any? {|k, v| k.include? "foo"}

(для меня это звучит как "есть ли в хэше какие-либо ключи, которые включают 'foo'?" )

В качестве альтернативы, это может быть менее эффективным, но на самом деле может быть немного более эффективным (см. Комментарии) и, возможно, немного более читабельным:

some_hash.keys.any? {|k| k.include? "foo"}
5 голосов
/ 19 августа 2011
some_hash.keys.any? {|k| k.include? 'foo' }
0 голосов
/ 19 августа 2011

some_hash.any? {|k,v| k.include? "foo"}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...