如何检查我的哈希是否有来自字符串数组的键?

0 ruby arrays hash ruby-on-rails

使用Ruby,如果我有一个哈希,检查它是否有来自字符串数组的键的最快方法是什么?所以我能做到这一点

has_key = false
arr_of_strings.each do |str|
    if my_hash.has_key?(str)
        has_key = true
        break
    end
end
Run Code Online (Sandbox Code Playgroud)

但对于这样一个简单的查询来说,似乎有太多代码行.

Ser*_*sev 5

就这么简单:

arr_of_strings.any? {|s| my_hash.key?(s) }
Run Code Online (Sandbox Code Playgroud)

或者,为巧妙但不易读的代码获得奖励积分:

arr_of_strings.any?(&my_hash.method(:key?)) # => true
Run Code Online (Sandbox Code Playgroud)