Tôi có thiếu thứ gì đó trong tài liệu Array không? Tôi có một mảng chứa tối đa một đối tượng thỏa mãn một tiêu chí nhất định. Tôi muốn tìm ra đối tượng đó một cách hiệu quả. Ý tưởng tốt nhất mà tôi có được từ các tài liệu là:Đối tượng find_first của Ruby Array?
candidates = my_array.select { |e| e.satisfies_condition? }
found_it = candidates.first if !candidates.empty?
Nhưng tôi không hài lòng vì hai lý do: (1) mà chọn khiến tôi đi qua toàn bộ mảng, mặc dù chúng ta có thể giải cứu sau khi hit đầu tiên, và (2) Tôi cần một dòng mã (có điều kiện) để làm phẳng các ứng cử viên. Cả hai hoạt động là lãng phí với sự hiểu biết rằng có 0 hoặc 1 đối tượng thỏa mãn.
Những gì tôi muốn là một cái gì đó như:
array.find_first(block)
-> câu trả lời bằng không hoặc đối tượng đầu tiên mà các khối để đánh giá đúng, chấm dứt traversal ở đối tượng đó.
Tôi có phải tự viết bài này không? Tất cả những phương pháp tuyệt vời khác trong Array khiến tôi nghĩ rằng nó ở đó và tôi không thấy nó.
Cảm ơn trước, Dan
Nope. Tôi nghĩ bạn hiểu nó. Cảm ơn (và cho những người khác). Tôi không thấy bất kỳ phương pháp nào có thể đếm được. Đó chỉ là những gì tôi cần. Xin lỗi đã làm phiền. –
Không có vấn đề gì, tôi cũng thường thấy khó chịu khi tài liệu ruby không liệt kê các phương thức của tất cả các lớp và mô-đun được thừa kế hoặc bao gồm. –
thông tin thêm: '[1,2,3,5,2] .find {| n | đặt n; n == 2} 'lặp lại dừng khi nó tìm thấy phần tử đầu tiên khớp với nó. – rajuGT