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

रूबी मानचित्र विधि का उपयोग कैसे करें (उदाहरण के साथ)

मैप एक रूबी विधि है जिसका उपयोग आप ऐरे, हैश और रेंज के साथ कर सकते हैं।

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

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

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

या यदि आपके पास 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 तक सीमित नहीं है , इसका उपयोग अन्य गणना योग्य विधियों के साथ भी किया जा सकता है।

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

रूबी मानचित्र विधि का उपयोग कैसे करें (उदाहरण के साथ)

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

सारांश

आपने रूबी मानचित्र विधि और इसका उपयोग करने के तरीके के बारे में सीखा है! आपने प्रत्येक, मानचित्र और संग्रह के बीच अंतर के बारे में भी सीखा है।

अगर आपको यह लेख पसंद आया हो तो कृपया इसे अपने रूबी दोस्तों के साथ साझा करें 🙂

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


  1. रूबी उपनाम कीवर्ड का उपयोग कैसे करें

    आप रूबी पद्धति को दो तरह से वैकल्पिक नाम दे सकते हैं: उपनाम (कीवर्ड) उपनाम_विधि क्योंकि वे एक ही काम को थोड़े अलग तरीके से करते हैं, यह एक भ्रमित करने वाला विषय हो सकता है। यह छवि मतभेदों का सारांश है : आइए एक ठोस समझ पाने के लिए इन अंतरों को और अधिक विस्तार से देखें! उपनाम कीवर्ड सबसे पहले

  1. रूबी ग्रेप विधि का उपयोग कैसे करें (उदाहरण के साथ)

    आइए बात करते हैं grep . के बारे में विधि। यह विधि आपके लिए क्या कर सकती है? आप ग्रेप का उपयोग एरेज़ और रेंज जैसी असंख्य वस्तुओं को फ़िल्टर करने के लिए कर सकते हैं। “लेकिन चुनें पहले से ही ऐसा करता है!” हां, लेकिन grep एक अलग तरीके से काम करता है और यह अलग परिणाम देता है। आइए कुछ उदाहरण देखें।

  1. रूबी के ऐरे क्लास का उपयोग कैसे करें (उदाहरण + उपयोगी तरीके)

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