Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Ruby

Ruby के Map मेथड में महारत: उदाहरणों के साथ एक व्यावहारिक गाइड

Map एक Ruby मेथड है जिसका उपयोग आप Arrays, Hashes और Ranges के साथ कर सकते हैं।

map का मुख्य उपयोग डेटा को ट्रांसफॉर्म करना है।

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

स्ट्रिंग्स की एक सरणी दिए जाने पर, आप हर स्ट्रिंग पर जा सकते हैं और हर कैरेक्टर को UPPERCASE बना सकते हैं।

या यदि आपके पास User ऑब्जेक्ट्स की एक सूची है...

आप उन्हें उनके संबंधित ईमेल पते, फोन नंबर, या User क्लास पर परिभाषित किसी अन्य एट्रिब्यूट की सूची में परिवर्तित कर सकते हैं।

आइए देखते हैं कि वास्तव में यह कैसे करना है!

Ruby Map सिंटैक्स

map के लिए सिंटैक्स ऐसा दिखता है:

 array = ["a", "b", "c"] array.map { |string| string.upcase } # ["A", "B", "C"] 

सबसे पहले, आपके पास एक सरणी होती है, लेकिन यह एक हैश या रेंज भी हो सकती है।

फिर आप एक ब्लॉक के साथ map कॉल करते हैं।

ब्लॉक वह चीज है जो ब्रैकेट्स { ... } के बीच होती है। ब्लॉक के अंदर आप कहते हैं कि आप सरणी में हर तत्व को कैसे ट्रांसफॉर्म करना चाहते हैं। यह मूल रूप से एक फ़ंक्शन है।

map कॉल करने के बाद क्या होता है?

Map परिणामों के साथ एक नई सरणी लौटाता है।

यह मूल को नहीं बदलेगा।

यदि आप मूल सरणी को बदलना चाहते हैं तो आप map! का उपयोग कर सकते हैं।

Ruby Map उदाहरण

यहां कुछ उदाहरण हैं जो आपको उपयोगी लग सकते हैं।

संख्याओं को दोगुना करना:

 array = [1,2,3] array.map { |n| n * 2 } # [2, 4, 6] 

स्ट्रिंग्स को इंटीजर्स में बदलना:

 array = ["11", "21", "5"] array.map { |str| str.to_i } # [11, 21, 5] 

हैश मानों को सिम्बल्स में बदलना:

 hash = { bacon: "protein", apple: "fruit" } hash.map { |k,v| [k, v.to_sym] }.to_h # {:bacon=>:protein, :apple=>:fruit} 

इस हैश उदाहरण के बारे में:

आप देखेंगे कि हमारे पास एक के बजाय दो आर्गुमेंट्स हैं, ऐसा इसलिए है क्योंकि एक हैश तत्व एक कुंजी और एक मान से बना होता है।

फिर मैं ट्रांसफॉर्म की गई कुंजी और मानों के साथ एक नई सरणी लौटा रहा हूं।

अंतिम चरण इसे वापस हैश में बदलना है।

Ruby Map बनाम Each

map और each में क्या अंतर है?

Each map का एक अधिक प्राथमिक संस्करण है...

यह आपको हर तत्व देता है ताकि आप इसके साथ काम कर सकें, लेकिन यह परिणाम एकत्र नहीं करता।

Each हमेशा मूल, अपरिवर्तित ऑब्जेक्ट लौटाता है।

जबकि map वही काम करता है, लेकिन...

यह ट्रांसफॉर्म किए गए तत्वों के साथ एक नई सरणी लौटाता है।

उदाहरण:

 array.each { |n| n * 2 } # [1, 2, 3] array.map { |n| n * 2 } # [2, 4, 6] 

Ruby Map बनाम Collect

Map और Collect बिल्कुल वही मेथड हैं।

वे एक ही चीज के लिए अलग-अलग नाम हैं!

आपको किसका उपयोग करना चाहिए?

यदि आप ओपन-सोर्स प्रोजेक्ट्स पढ़ते हैं तो आप पाएंगे कि सबसे आम संस्करण map है।

उसका उपयोग करें।

इंडेक्स के साथ Map का उपयोग कैसे करें

यदि आपको अपने मानों के साथ इंडेक्स की आवश्यकता है तो आप with_index मेथड का उपयोग कर सकते हैं।

यहां एक उदाहरण है:

 array = %w(a b c) array.map.with_index { |ch, idx| [ch, idx] } # [["a", 0], ["b", 1], ["c", 2]] 

बोनस टिप:

यदि आप इंडेक्स 0 से शुरू नहीं करना चाहते हैं तो आप with_index को एक पैरामीटर पास कर सकते हैं।

Ruby Map शॉर्टहैंड (map &)

आप map के लिए एक शॉर्टहैंड संस्करण का उपयोग कर सकते हैं जब आप एक ऐसे मेथड को कॉल कर रहे हों जिसे किसी आर्गुमेंट की आवश्यकता नहीं है।

उदाहरण:

 ["11", "21", "5"].map(&:to_i) 

उदाहरण:

 ["orange", "apple", "banana"].map(&:class) 

यह & सिंटैक्स map तक सीमित नहीं है, इसका उपयोग अन्य enumerable मेथड्स के साथ भी किया जा सकता है।

Map मेथड माइंडमैप

Ruby के Map मेथड में महारत: उदाहरणों के साथ एक व्यावहारिक गाइड

वीडियो ट्यूटोरियल

सारांश

आपने Ruby map मेथड और इसका उपयोग कैसे करें के बारे में सीखा! आपने each, map और collect के बीच अंतर के बारे में भी सीखा।

यदि आपको यह लेख पसंद आया तो कृपया इसे अपने Ruby दोस्तों के साथ साझा करें 🙂

पढ़ने के लिए धन्यवाद!


  1. Ruby में Alias कीवर्ड का उपयोग करके मेथड एलियास बनाना Ruby में Alias कीवर्ड का उपयोग करके मेथड एलियास बनाना

    Ruby में किसी मेथड को वैकल्पिक नाम देने के दो तरीके हैं: alias (कीवर्ड) alias_method चूंकि ये दोनों थोड़े अलग तरीके से एक ही काम करते हैं, इसलिए यह विषय भ्रमित करने वाला हो सकता है। यह छवि अंतरों का सारांश है: आइए इन अंतरों को विस्तार से समझते हैं ताकि आपको ठोस समझ मिल सके! alias कीवर्ड पहला है a

  1. Ruby के grep मेथड में महारत: कोड उदाहरणों के साथ एक व्यावहारिक गाइड Ruby के grep मेथड में महारत: कोड उदाहरणों के साथ एक व्यावहारिक गाइड

    आइए grep मेथड के बारे में बात करते हैं। यह मेथड आपके लिए क्या कर सकता है? आप enumerable ऑब्जेक्ट्स को फ़िल्टर करने के लिए Grep का उपयोग कर सकते हैं, जैसे Arrays और Ranges। "लेकिन select पहले से ही ऐसा करता है!" हाँ, लेकिन grep अलग तरीके से काम करता है और अलग परिणाम उत्पन्न करता है। आइए कुछ

  1. रूबी एरे में महारत: व्यावहारिक उदाहरण और आवश्यक मेथड्स रूबी एरे में महारत: व्यावहारिक उदाहरण और आवश्यक मेथड्स

    एरे क्या है? एक एरे रूबी में एक बिल्ट-इन क्लास है, जो शून्य या अधिक आइटम्स की सूची रखती है, और इसमें ऐसे मेथड्स शामिल हैं जो आपको इन सभी आइटम्स को आसानी से जोड़ने, एक्सेस करने और लूप करने में मदद करते हैं। यह उपयोगी है, क्योंकि यदि एरे मौजूद नहीं होते तो आपको कई वेरिएबल्स का उपयोग करना पड़ता। उदाहरण