我想检查散列是否包含包含某些文本的键.它可能不是确切的密钥,但密钥必须包含(如.include?)文本.我的解决方案是:
some_hash.select {|k,v| k.include? "foo"}.empty?
Run Code Online (Sandbox Code Playgroud)
但这会产生一个哈希值.我只想检查密钥的存在.有没有更好的方法呢?
jtb*_*des 10
这会更好一些:
some_hash.any? {|k, v| k.include? "foo"}
Run Code Online (Sandbox Code Playgroud)
(对我来说,这是"哈希有没有包含'foo'的键吗?")
或者,这可能效率较低,但实际上效率更高(请参阅注释),并且可能更具可读性:
some_hash.keys.any? {|k| k.include? "foo"}
Run Code Online (Sandbox Code Playgroud)