ruby-on-rails - 相当于 ruby​​/rails 中的 Array.some

标签 ruby-on-rails ruby arrays

我想在 rails 中做 Array.some 的等价物。

这是一个应用于我的用例的示例,它是一种更复杂的 include?(我想将其应用于 *args):

ary = [:a, :b, :c, d: :x, e: :y] # => [:a, :b, :c, { :d => :x, :e => :y }]
search = :e
contained = ary.some { |x|
  x == search || x.try(:key?, search)
} # => true
assert contained, "We should have found #{search}"

我可以用 ary.map 来做到这一点,但这意味着遍历整个数组然后再次测试它的内容。 我还可以使用 ary.drop_while 并验证它是否返回空数组,但我需要再次测试结果。 我也看过 ary.bsearch 但是有一些奇怪的限制我不太明白元素的顺序。

我错过了什么吗?有没有简单的方法可以做到这一点?我正在使用 ruby​​2 和 rails 4 (edge)。

最佳答案

Javascript Array.prototype.some是 ruby Enumerable#any? .

["1", "2", "3"].any? { |x| x.to_i == 2 } #=> true

关于ruby-on-rails - 相当于 ruby​​/rails 中的 Array.some,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15642197/

相关文章:

ruby-on-rails - ActiveScaffold - 更改关联对象的默认名称

javascript - 用 JavaScript 将字符串转换为数组?

arrays - 当它们看起来相同时,为什么编译器会说实现 "differs from the previous declaration"?

ruby-on-rails - rails, accepts_nested_attributes_for 示例

ruby-on-rails - 从 ActiveRecord 模型中删除属性

ruby - Elasticsearch查询匹配数组中的元素

C:创建随机生成的整数,将它们存储在数组元素中,并打印每个元素中存储的整数数量

ruby-on-rails - ActiveRecord 日期格式

ruby-on-rails - 使用带有 Rails4 的 Searchkick 导入记录时,如何强制预先加载关联?

ruby-on-rails - 按权限过滤后的 rails 4 activerecord 关系分页