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

ऐरे#ज़िप विधि

मान लें कि आप दो सरणियों की तुलना करना चाहते हैं, तत्व दर तत्व ताकि आप अंतर ढूंढ सकें।

या हो सकता है कि आप प्रत्येक अनुक्रमणिका पर सबसे बड़ी संख्या खोजना चाहते हों, या आप हैश बनाने के लिए केवल कुंजियों की सूची और मानों की सूची को मर्ज करना चाहते हैं…

...ऐसा करने का "कठिन तरीका" कुछ इस तरह दिखाई देगा।

उदाहरण :

a = [1,2,3,4,5]
b = [1,2,3,6,8]

c = a.map.with_index { |_, idx| [a[idx], b[idx]] }

# [[1, 1], [2, 2], [3, 3], [4, 6], [5, 8]]

इससे काम हो जाता है, लेकिन यह सुंदर नहीं है, है ना?

इसके अलावा, क्या हो रहा है यह समझने के लिए आपको एक मिनट के लिए रुकना और सोचना भी होगा।

यहाँ वह जगह है जहाँ Array#zip (एन्यूमरेबल#zip भी) चलन में आता है!

उदाहरण :

a = [1,2,3,4,5]
b = [1,2,3,6,8]

c = a.zip(b)

# [[1, 1], [2, 2], [3, 3], [4, 6], [5, 8]]

आह! …बहुत बेहतर।

क्या आप सहमत नहीं हैं?

अगर हम zip . से परिचित हैं हम तुरंत समझ जाएंगे कि क्या हो रहा है। और अगर हम नहीं करते हैं, तो दस्तावेज़ीकरण (या इससे भी बेहतर, यह लेख!) का एक त्वरित पठन इसकी व्याख्या करेगा।

zip using का उपयोग करने का एक और लाभ यह है कि हम इसे अन्य संख्यात्मक तरीकों से आसानी से श्रृंखलाबद्ध कर सकते हैं।

उदाहरण के लिए, गणना विधि की तरह :

a = [1,2,3,4,5]
b = [1,2,3,6,8]

c = a.zip(b).count { |a,b| a == b }

# 3

यह कोड इस बात की गिनती देता है कि कितने तत्व समान हैं और एक ही स्थिति में हैं।

एक और तरकीब जिसका आप उपयोग कर सकते हैं, जैसा कि मैंने पहले उल्लेख किया है, हैश बनाने के लिए कुंजियों और मूल्यों की सूची को मर्ज करना है।

उदाहरण :

a = %w(bacon coconut walnuts)
b = [100, 200, 300]

a.zip(b).to_h

# {"bacon"=>100, "coconut"=>200, "walnuts"=>300}

एक और उदाहरण चाहते हैं?

ठीक है!

यह रहा :

letters = Array('a'..'z')
shift   = 3

translation_map = letters.zip(letters.rotate(shift)).to_h

"hello".chars.map { |ch| translation_map[ch] }.join

यह सीज़र सिफर एल्गोरिथम का एक फैंसी कार्यान्वयन है।

सारांश

आपने Array#zip . के बारे में सीखा विधि, जो आपको दो सरणियों को "मर्ज" करने की अनुमति देती है और उसके साथ कुछ अच्छी चालें करती है 🙂

अगर आपको यह पोस्ट अच्छी लगी हो तो इसे शेयर करना न भूलें आपके पसंदीदा सोशल नेटवर्क पर ताकि और लोग इसे पढ़ सकें!


  1. जावास्क्रिप्ट निष्पादन () विधि

    निष्पादन () विधि मिलान के लिए खोज को निष्पादित करती है और यदि मिलान पाठ निर्दिष्ट स्ट्रिंग में पाया जाता है तो इसे वापस कर दिया जाता है अन्यथा शून्य वापस आ जाता है। जावास्क्रिप्ट निष्पादन () विधि के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> &

  1. जावास्क्रिप्ट गेटटाइम () विधि

    जावास्क्रिप्ट में गेटटाइम () विधि 1 जनवरी 1970 के बाद से बीत चुके मिलीसेकंड की संख्या लौटाती है। गेटटाइम () फ़ंक्शन के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" conte

  1. जावास्क्रिप्ट सॉर्ट () विधि

    जावास्क्रिप्ट सॉर्ट () विधि का उपयोग किसी सरणी को सॉर्ट करने के लिए किया जाता है। छँटाई का क्रम वर्णानुक्रमिक, संख्यात्मक, आरोही या अवरोही हो सकता है। सॉर्ट () विधि के लिए कोड निम्नलिखित है - उदाहरण दस्तावेज़ बॉडी { फॉन्ट-फ़ैमिली:सेगो यूआई, ताहोमा, जिनेवा, वर्दाना, सेन्स-सेरिफ़; } .नमूना, .परिणाम {