ruby哈希检查值是否存在
这一定是个容易的问题。。但我似乎找不到答案。 我试图检查散列中是否存在特定键的值ruby哈希检查值是否存在,ruby,hash,Ruby,Hash,这一定是个容易的问题。。但我似乎找不到答案。 我试图检查散列中是否存在特定键的值 hash = {{"name" => "John", "Loc" => "US", "fname" => "John Doe"}, {"name" => "Eve", "Loc" => "UK", "fname" => "John Eve"}} 目前我正在通过哈希循环,检查h[“name”]=“John”… 我想看看.include或是否有价值?方法类型是否可用
hash = {{"name" => "John", "Loc" => "US", "fname" => "John Doe"},
{"name" => "Eve", "Loc" => "UK", "fname" => "John Eve"}}
目前我正在通过哈希循环,检查h[“name”]=“John”…
我想看看.include
或是否有价值?
方法类型是否可用。我读了关于散列的文档和我手头的一本书,但找不到它
我认为像
if hash[“name”].has_value?(“John”)
这样的东西比在hash中循环更有用。提前感谢您的帮助 首先,我们的散列不是有效的散列。我想你想要一个像这样的散列数组
array = [
{ "name" => "John", "Loc" => "US", "fname" => "John Doe" },
{ "name" => "Eve", "Loc" => "UK", "fname" => "John Eve" }
]
然后你可以这样做:
array.select { |hash| hash['name'] == 'John' }
# => returns [{"name" => "John", "Loc" => "US", "fname" => "John Doe"}]
array.any? { |hash| hash['name'] == 'John' }
# => true
谢谢正是我所需要的…=]为什么使用
.include?
而不是==
?与似乎更简单的array.select{124; hash{124; hash['name']='John'}
相比,有什么优势吗?如果确定hash数组的哪些元素(比如,arr
)包含“name”=>“John”
,您可以这样做:arr.size.times.select{i | arr[i][“name”=“John”
。这将返回对应于匹配哈希的arr
索引数组(可能为空)。