我想检查散列是否包含包含某些文本的键。它可能不是确切的密钥,但密钥必须包含(如.include?
)文本。我的解决方案是:
some_hash.select {|k,v| k.include? "foo"}.empty?
但这会产生一个哈希值。我只想检查密钥的存在。有没有更好的方法呢?
答案 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"}