【发布时间】:2013-03-26 16:22:01
【问题描述】:
我想在 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,但有一些奇怪的限制,我不太了解元素的顺序。
我错过了什么吗?没有简单的方法吗?我正在使用 ruby2 和 rails 4 (edge)。
【问题讨论】:
-
你能给出输出应该是什么吗?
-
我将输出添加为代码中的注释。
ary.some应该在该用例中输出 true
标签: ruby-on-rails ruby arrays