मैप एक रूबी विधि है जिसका उपयोग आप ऐरे, हैश और रेंज के साथ कर सकते हैं।
मानचित्र का मुख्य उपयोग डेटा को ट्रांसफ़ॉर्म करना है।
उदाहरण के लिए :
स्ट्रिंग्स की एक सरणी को देखते हुए, आप प्रत्येक स्ट्रिंग पर जा सकते हैं और प्रत्येक वर्ण को अपरकेस बना सकते हैं।
या यदि आपके पास User
. की सूची है ऑब्जेक्ट...
आप रूपांतरित कर सकते हैं उन्हें उनके संबंधित ईमेल पते, फ़ोन नंबर, या किसी अन्य विशेषता . की सूची में शामिल करें User
. पर परिभाषित कक्षा।
आइए देखें कि यह कैसे करना है!
रूबी मैप सिंटैक्स
मानचित्र का सिंटैक्स इस तरह दिखता है:
array = ["a", "b", "c"] array.map { |string| string.upcase } # ["A", "B", "C"]
सबसे पहले, आपके पास एक सरणी है, लेकिन यह एक हैश या एक श्रेणी भी हो सकती है।
फिर आप map
. पर कॉल करें एक ब्लॉक के साथ।
कोष्ठक { ... }
. के बीच यह ब्लॉक है . ब्लॉक के अंदर आप कहते हैं कि आप सरणी में प्रत्येक तत्व को कैसे बदलना चाहते हैं। यह मूल रूप से एक फ़ंक्शन है।
map
. को कॉल करने के बाद क्या होता है ?
नक्शा एक नई सरणी देता है परिणामों के साथ।
यह मूल को नहीं बदलेगा।
यदि आप मूल सरणी को बदलना चाहते हैं तो आप 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}
इस हैश उदाहरण के बारे में:
आप पाएंगे कि हमारे पास एक के बजाय दो तर्क हैं, ऐसा इसलिए है क्योंकि हैश तत्व एक कुंजी और एक मान से बना होता है।
फिर मैं रूपांतरित कुंजी और मानों के साथ एक नई सरणी लौटा रहा हूं।
अंतिम चरण इसे वापस हैश में बदलना है।
रूबी मैप बनाम प्रत्येक
मानचित्र और प्रत्येक में क्या अंतर है?
प्रत्येक मानचित्र का अधिक आदिम संस्करण . जैसा है …
यह आपको हर तत्व देता है ताकि आप इसके साथ काम कर सकें, लेकिन यह परिणाम एकत्र नहीं करता है।
प्रत्येक हमेशा मूल, अपरिवर्तित वस्तु लौटाता है ।
जबकि नक्शा वही काम करता है, लेकिन…
यह रूपांतरित तत्वों के साथ एक नई सरणी देता है।
उदाहरण :
array.each { |n| n * 2 } # [1, 2, 3] array.map { |n| n * 2 } # [2, 4, 6]
रूबी मैप बनाम कलेक्ट
मैप और कलेक्ट बिल्कुल एक ही तरीके हैं।
वे एक ही चीज़ के अलग-अलग नाम हैं!
आपको किसका उपयोग करना चाहिए?
यदि आप ओपन-सोर्स प्रोजेक्ट पढ़ते हैं तो आप पाएंगे कि सबसे आम संस्करण map
. है ।
इसका इस्तेमाल करें।
अनुक्रमणिका के साथ मानचित्र का उपयोग कैसे करें
यदि आपको अपने मूल्यों के साथ एक अनुक्रमणिका की आवश्यकता है तो आप with_index
. का उपयोग कर सकते हैं विधि।
यहां एक उदाहरण दिया गया है :
array = %w(a b c) array.map.with_index { |ch, idx| [ch, idx] } # [["a", 0], ["b", 1], ["c", 2]]
बोनस युक्ति :
आप पैरामीटर को with_index
. पर पास कर सकते हैं अगर आप इंडेक्स 0 से शुरू नहीं करना चाहते हैं।
रूबी मैप शॉर्टहैंड (मानचित्र और)
आप map
. के लिए शॉर्टहैंड संस्करण का उपयोग कर सकते हैं जब आप किसी ऐसी विधि को कॉल कर रहे हों जिसमें किसी तर्क की आवश्यकता न हो ।
उदाहरण :
["11", "21", "5"].map(&:to_i)
उदाहरण :
["orange", "apple", "banana"].map(&:class)
यह और वाक्य रचना map
तक सीमित नहीं है , इसका उपयोग अन्य गणना योग्य विधियों के साथ भी किया जा सकता है।
मैप मेथड माइंडमैप
वीडियो ट्यूटोरियल
सारांश
आपने रूबी मानचित्र विधि और इसका उपयोग करने के तरीके के बारे में सीखा है! आपने प्रत्येक, मानचित्र और संग्रह के बीच अंतर के बारे में भी सीखा है।
अगर आपको यह लेख पसंद आया हो तो कृपया इसे अपने रूबी दोस्तों के साथ साझा करें 🙂
पढ़ने के लिए धन्यवाद!