我想在rails中做相当于Array.some的操作。相当于在ruby/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(边缘)。
你可以给出什么输出应该是什么? – Linuxios 2013-03-26 16:37:56
我在代码中添加了输出作为注释。 'ary.some'应该在该用例中输出true – Crystark 2013-03-26 16:48:06