ruby - 检查是否包含针对另一个哈希的哈希

标签 ruby

我有一个这样的哈希数组:

arr = [
  { email: 'prathab@hotmail.in', valid: true },
  { email: 'another@mail.com', valid: false }
]

我需要检查 email: 'prathab@hotmail.in'valid: true 是否都存在于一个散列中。

如何在不使用 each 循环的情况下检查数组中的此类哈希?

目前我正在这样做:

found = false
arr.each do|v|
  if v[:email] == 'prathab@hotmail.in' && v[:valid] == true
    found = true
    break
  end
end

最佳答案

您可以使用 Enumerable#any?这或多或少做了您在实现中所做的事情:

> found = arr.any?{|e| e[:email] == 'prathab@hotmail.in' && e[:valid] }
=> true

关于ruby - 检查是否包含针对另一个哈希的哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54253072/

相关文章:

ruby-on-rails - Rails 4 中动态表单的不允许参数

ruby-on-rails - ruby rails : debugging rake tasks

ruby-on-rails - rails : Can't include scss in rails 4. 1.1。 - 类型错误:对象不支持此属性或方法

ruby-on-rails - Ruby 如何迭代集合并创建散列键(如果不存在),或者添加到值(如果键存在)

ruby - 用 Sinatra 设计

sql - 在将 select() 与 includes() 和 where() 结合使用时,使用 activerecord 检索虚拟属性

ruby - 获取 NameError(未定义的局部变量或方法 `“_” ')

ruby-on-rails - 建立连接不适用于 Ruby 控制台

ruby - 使用 sinatra 和 Rack::Session::Encrypted Cookie 根据每个请求更改 Cookie

ruby - Ruby 中的 "main"是什么?