ruby哈希检查值是否存在

时间:2014-09-07 03:01:29

标签: ruby hash

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

hash = {{"name" => "John", "Loc" => "US", "fname" => "John Doe"},
        {"name" => "Eve", "Loc" => "UK", "fname" => "John Eve"}}

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

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

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

1 个答案:

答案 0 :(得分:6)

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

array = [
  {"name" => "John", "Loc" => "US", "fname" => "John Doe"},
  {"name" => "Eve", "Loc" => "UK", "fname" => "John Eve"}
]

你可以做这样的事情:

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

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