Я хотел бы сделать эквивалент Array.some в рельсах.Эквивалент Array.some в рубине/рельсах
Вот пример применительно к моей USECASE, который является своего рода более сложный 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 и рельсы 4 (край).
Можете ли вы дать то, что выход должен быть? – Linuxios
Я добавил вывод в качестве комментария в коде. 'ary.some' должно быть верно в том, что usecase – Crystark