2012-05-20 16 views
11

में सभी मान सही साबित होते हैं, यह सत्यापित करने का एक तेज़ तरीका क्या है कि एक संख्या के सभी तत्व किसी निश्चित स्थिति को पूरा करते हैं या नहीं? मैं तार्किक लगता है कि ऐसा लगता है कि हो सकता है: "सभी पूर्णांकों अजीब हैं"केवल तभी सत्य लौटें जब रूबी

elements = [e1, e2, e3, ...] 
return (condition on e1) && (condition on e2) && (condition on e3) && ... 

उदाहरण के लिए, अगर मैं पूर्णांकों की एक सरणी था, और मैं इस सवाल का जवाब चाहता था

मैं हमेशा प्रत्येक मान पर फिर से प्रयास कर सकता हूं, यह जांच सकता हूं कि यह सच है, और फिर उनमें से एक झूठी वापसी करते समय झूठी वापसी करता है, लेकिन क्या ऐसा करने का एक बेहतर तरीका है?

उत्तर

17

आप संख्यात्मक मिश्रण-इन से all? फ़ंक्शन का उपयोग कर सकते हैं।

elements = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19] 
return elements.all? { |elem| elem % 2 != 0 } 

या, जैसा कि टिप्पणी में कहा, आप भी odd? इस्तेमाल कर सकते हैं अगर आप अजीब मूल्यों के लिए specificially देख रहे हैं।

elements = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19] 
return elements.all?(&:odd?) 
+5

क्या आप वास्तव में मॉड्यूलो का उपयोग करने की बजाय संख्या पर 'विषम' कह सकते हैं, जिसका अर्थ है कि आप बस 'elements.all? (&: Odd?) 'कर सकते हैं। –

संबंधित मुद्दे