ruby रूबी में सबसे तेज़ तरीका कौन सा है, जिसके लिए सबसे पहला एलिमेंटेबल एलिमेंट है, जिसके लिए एक ब्लॉक सही है?




arrays enumerable (3)

arr[arr.index {|num| num > 100 }] #=> 107

रूबी में सबसे तेज़ तरीका कौन सा है, जिसके लिए सबसे पहला एलिमेंटेबल एलिमेंट है, जिसके लिए एक ब्लॉक सही है?

उदाहरण के लिए:

arr = [12, 88, 107, 500]
arr.select {|num| num > 100 }.first  # => 107

मैं पूरे ऐरे से भागे बिना ऐसा करना चाहूंगा, जैसा कि select होगा, चूंकि मुझे केवल पहले मैच की आवश्यकता है।

मुझे पता है कि मैं each कर सकता हूं और सफलता पर ब्रेक लगा सकता हूं, लेकिन मुझे लगा कि ऐसा करने के लिए एक देशी तरीका है; मैंने अभी इसे प्रलेखन में नहीं पाया है।


Array और Hash सहित कई मुख्य रूबी वर्गों में एन्यूमरेबल मॉड्यूल शामिल हैं जो इन गणनाओं के साथ काम करने के लिए कई उपयोगी तरीके प्रदान करते हैं।

यह मॉड्यूल उन विधियों को detect या उनका find detect है, जो आप प्राप्त करना चाहते हैं:

arr = [12, 88, 107, 500]
arr.find { |num| num > 100 } # => 107

दोनों विधि नाम एक दूसरे के पर्यायवाची हैं और बिल्कुल एक जैसे हैं।


arr.find{|el| el>100} #107 (or detect; it's in the Enumerable module.)




enumerable