क्या मुझे ऐरे दस्तावेज में कुछ याद आ रहा है? मेरे पास एक सरणी है जिसमें एक वस्तु तक एक निश्चित मानदंड को संतुष्ट करना शामिल है। मैं कुशलतापूर्वक उस वस्तु को ढूंढना चाहता हूं। डॉक्स से मेरा सबसे अच्छा विचार यह है:
candidates = my_array.select { |e| e.satisfies_condition? }
found_it = candidates.first if !candidates.empty?
लेकिन मैं दो कारणों से असंतुष्ट हूं:
- इसने
selectमुझे पूरी व्यूह रचना में उलझा दिया, भले ही हम पहली हिट के बाद जमानत ले सकते थे। - मुझे उम्मीदवारों को समतल करने के लिए कोड की एक पंक्ति (एक शर्त के साथ) की आवश्यकता थी।
दोनों ऑपरेशन foreknowledge कि 0 या 1 संतोषजनक वस्तुओं के साथ बेकार हैं।
मुझे जो पसंद है वह कुछ इस तरह है:
array.find_first(block)
जो शून्य या उस पहली वस्तु को लौटाता है जिसके लिए ब्लॉक सही का मूल्यांकन करता है, उस वस्तु पर आघात को समाप्त करता है।
क्या मुझे यह स्वयं लिखना चाहिए? ऐरे में उन सभी अन्य महान तरीकों से मुझे लगता है कि यह वहां है और मैं इसे नहीं देख रहा हूं।