ruby - How do you concisely get the average house price from an array of houses? -
@ हाउस एक्सचेंजों को मानते हुए निम्नानुसार सेट है:
house1.price = 10 House2.price = 20 house3.price = 30 @ हाउस और लेफ्टिनेंट; & lt; हाउस 1 @ हाउस और लेफ्टिनेंट; & lt; हाउस 2 @ हाउस और लेफ्टिनेंट; & lt; घर 3
यह हमारी गणना का प्रारंभिक बिंदु है और हम एक घर की औसत कीमत खोजना चाहते हैं:
कुल = 0 औसत = 0 घंटे के लिए @ घरों में कुल = = h.price अंत औसत = कुल /@houses.size
यह सिर्फ एक औसतन पाने के लिए काफी टाइपिंग की तरह लगता है।
क्या कोई बेहतर तरीका है?
एक विशाल संग्रह पर विधि का उपयोग करें। इंजेक्शन आपको एक 'संचयकर्ता' (इस मामले में 0) के लिए एक प्रारंभिक मान में जाने देता है, फिर सूची में प्रत्येक तत्व को कुछ ऑपरेशन लागू करें, और संचयी के लिए एक नया मान अगली चलना में पारित किया जाए।
संचयकर्ता का अंतिम मूल्य तब इंजेक्ट
कॉल से लौटा है।
तो इस मामले में, हम सभी घरेलू कीमतों को संचयकर्ता में जोड़ देते हैं, फिर अंत में कुल संख्या से विभाजित करें।
आप मजेदार हो सकते हैं और संभवत: इसे कुछ रूबी कुर्सज़ के साथ और भी कम कर सकते हैं, लेकिन ये उचित रूप से समझा जा सकता है, और केवल एक बार मूल्यों को जोड़ने के लिए सूची के माध्यम से ही दोहराता है।
@ houses.inject (0) {| कुल, घर | कुल + house.price} / @ homes.size
Comments
Post a Comment