我正在构建一个函数,该函数需要检查哈希对象中的值是否包含特定的单词/字符串。
如果所有值都包括给定的真或假列表的特定短语,而我只需要输出|key, value|
个数,我就可以得到我的true
值。
def example(array)
array.each do |company|
company.each do |key, value|
val_count = value["email_hosts"].include?("gmail")
puts gmail_count
end
end
end
example(request)
此输出:
false
false
true
true
false
true
false
false
false
false
false
false
对于三个true
,我需要输出为3。
谢谢。
答案 0 :(得分:1)
这可以通过使用count
对每个公司中匹配的条目进行计数,然后将它们sum
一起计数来完成。
companies = [
{ this: { "email_hosts" => "hotestmail" } },
{
this: { "email_hosts" => "gmail" },
that: { "email_hosts" => "gmail.com" },
other: { "email_hosts" => "gmail.com" }
}
]
puts companies.sum { |company|
company.count { |_,host|
host["email_hosts"].include?("gmail")
}
}