Tôi muốn làm tương đương với Array.some trong đường ray.Tương đương với Array.some trong ruby / rails
Dưới đây là một ví dụ áp dụng cho usecase của tôi mà là loại một phức tạp hơn include?
(tôi muốn áp dụng điều này để *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}"
tôi có thể làm điều này với ary.map
nhưng điều đó sẽ có nghĩa là đi qua toàn bộ mảng và sau đó một lần nữa kiểm tra nội dung của nó. Tôi cũng có thể sử dụng ary.drop_while
và xác minh xem nó có trả về một mảng trống hay không, nhưng một lần nữa, tôi sẽ cần phải kiểm tra kết quả. Tôi cũng đã xem ary.bsearch
nhưng có một số hạn chế lạ tôi không hiểu lắm về thứ tự của các phần tử.
Tôi đã bỏ lỡ điều gì chưa? Không phải là một cách dễ dàng để làm điều đó? Tôi đang sử dụng ruby2 và ray 4 (cạnh).
Bạn có thể cung cấp kết quả đầu ra không? – Linuxios
Tôi đã thêm đầu ra làm nhận xét trong mã. 'ary.some' nên ouput đúng trong usecase – Crystark