检查哈希是否包含包含某些文本的键

时间:2011-08-18 23:17:12

标签: ruby string hash

我想检查散列是否包含包含某些文本的键。它可能不是确切的密钥,但密钥必须包含(如.include?)文本。我的解决方案是:

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

但这会产生一个哈希值。我只想检查密钥的存在。有没有更好的方法呢?

3 个答案:

答案 0 :(得分:10)

这会更好一些:

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

(对我来说这就是“哈希是否包含任何包含'foo'的键?”

或者,这可能效率较低,但实际上效率更高(参见评论),也许更具可读性:

some_hash.keys.any? {|k| k.include? "foo"}

答案 1 :(得分:5)

some_hash.keys.any? {|k| k.include? 'foo' }

答案 2 :(得分:0)

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