我想在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