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 मेथड और इसका उपयोग कैसे करें के बारे में सीखा! आपने each, map और collect के बीच अंतर के बारे में भी सीखा।
यदि आपको यह लेख पसंद आया तो कृपया इसे अपने Ruby दोस्तों के साथ साझा करें 🙂
पढ़ने के लिए धन्यवाद!