Cry*_*ark 10 ruby arrays ruby-on-rails
我想在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}"
Run Code Online (Sandbox Code Playgroud)
我可以这样做,ary.map但这意味着要通过整个数组,然后再次测试它的内容.我也可以使用ary.drop_while并验证它是否返回一个空数组,但是我还需要测试结果.我也看到了,ary.bsearch但是有一些奇怪的限制,我不太了解元素的顺序.
我错过了什么吗?有没有一种简单的方法可以做到这一点?我正在使用ruby2和rails 4(边缘).
tok*_*and 18
Javascript Array.prototype.some是Ruby Enumerable#any?.
["1", "2", "3"].any? { |x| x.to_i == 2 } #=> true
Run Code Online (Sandbox Code Playgroud)