ruby哈希检查值是否存在

Rok*_*Rok 0 ruby hash

一定是一个简单的问题..但我似乎无法找到答案.我正在尝试检查哈希中是否存在特定键的值.

hash = {{"name" => "John", "Loc" => "US", "fname" => "John Doe"},
        {"name" => "Eve", "Loc" => "UK", "fname" => "John Eve"}}
Run Code Online (Sandbox Code Playgroud)

目前我正在循环哈希,检查 if h["name"] = "John"...

我想看看是否有一种.include.has_value?一种方法可用.我阅读了关于哈希的文档和我手头的书但却找不到它.

我认为if hash["name"].has_value?("John")比循环哈希更有用.在此先感谢您的帮助!

spi*_*ann 6

首先,我们的哈希值不是有效的哈希值.我想你想要一个像这样的哈希数组:

array = [
  {"name" => "John", "Loc" => "US", "fname" => "John Doe"},
  {"name" => "Eve", "Loc" => "UK", "fname" => "John Eve"}
]
Run Code Online (Sandbox Code Playgroud)

你可以做这样的事情:

array.select { |hash| hash['name'].include?('John') }
# => returns [{"name" => "John", "Loc" => "US", "fname" => "John Doe"}] 

array.any? { |hash| hash['name'].include?('John') }
# => true
Run Code Online (Sandbox Code Playgroud)