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

Ruby Arrays से डुप्लिकेट एलिमेंट्स को uniq के साथ आसानी से हटाएं

uniq मेथड के साथ आप एक एरे से सभी डुप्लिकेट एलिमेंट्स को हटा सकते हैं।

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

यदि आपके पास ऐसा एरे है:

 n = [1,1,1,2,3,4,5] 

जहां नंबर 1 डुप्लिकेट है।

इस एरे पर uniq कॉल करने से अतिरिक्त वाले हट जाते हैं और यूनिक नंबर्स के साथ एक नया एरे वापस आता है।

उदाहरण:

 n.uniq # [1,2,3,4,5] 

ध्यान दें कि uniq n (मूल एरे) को नहीं बदलेगा, इसलिए हमें या तो uniq! कॉल करना होगा, या नए एरे को सेव करना होगा।

उदाहरण:

 unique_numbers = n.uniq 

काफी आसान, है ना?

लेकिन बहुत से लोग नहीं जानते कि uniq एक ब्लॉक लेता है।

एक ब्लॉक के साथ, आप अधिक उन्नत चीजें कर सकते हैं।

मैं समझाता हूँ...

ब्लॉक के साथ Ruby Uniq मेथड का उपयोग कैसे करें

जब आप uniq कॉल करते हैं, तो यह आपके एरे एलिमेंट्स से एक हैश बनाकर काम करता है।

हर एलिमेंट हैश में एक की बन जाता है।

क्योंकि हैश कीज़ यूनिक होती हैं, हम हैश में सभी कीज़ की एक सूची प्राप्त कर सकते हैं, यह सूची तब यूनिक एलिमेंट्स के साथ हमारा नया एरे बन जाती है।

अब:

यदि आप बदलना चाहते हैं कि क्या चीज़ को यूनिक बनाता है, तो आप एक ब्लॉक पास कर सकते हैं।

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

 fruits = %w(orange apple banana) 

"Orange" और "Banana" दोनों की लंबाई 6 कैरेक्टर्स है।

यदि हम uniq का उपयोग इस तरह करते हैं:

 fruits.uniq(&:size) # ["orange", "apple"] 

तो हम "banana" को छोड़ देते हैं क्योंकि यह स्ट्रिंग्स की तुलना उनके आकार से करने पर डुप्लिकेट होगा।

एक और उदाहरण:

 objects = [1, 2, "a", "b", :c, :d]
objects.uniq(&:class) 

यह आपको क्लास द्वारा यूनिक ऑब्जेक्ट्स के साथ एक एरे देता है:

 [1, "a", :c] 

क्या आप इसकी शक्ति देखते हैं?

जब आप uniq को एक ब्लॉक पास करते हैं, तो आप ठीक से परिभाषित करने में सक्षम होते हैं कि किस नियम से कुछ को यूनिक माना जाता है।

कई कंडीशन्स के साथ Uniq का उपयोग कैसे करें

आप कई कंडीशन्स का उपयोग कर सकते हैं!

यहाँ कैसे:

मान लीजिए आपके पास एक User क्लास है, जिसमें:

  • age
  • name
  • country

आप प्रति देश समान उम्र का केवल एक व्यक्ति चाहते हैं।

ब्लॉक के साथ आसान:

 [david, petter, raphael].uniq { |person| [person.age, person.country] } 

इस कोड के साथ, किसी चीज़ को यूनिक माने जाने से पहले दोनों कंडीशन्स को मेल खाना होगा।

यह कैसे काम करता है?

बिना ब्लॉक के, ऑब्जेक्ट हैश की बन जाता है।

ब्लॉक के साथ, यील्डेड वैल्यू हैश की बन जाती है, और ऑब्जेक्ट हैश वैल्यू बन जाता है।

फिर...

Ruby वैल्यूज लेता है और उन्हें एक नए एरे के रूप में वापस करता है।

ये केवल कार्यान्वयन विवरण हैं, लेकिन मुझे वे बहुत दिलचस्प लगते हैं इसलिए मैंने सोचा कि मैं उन्हें आपके साथ साझा करूं।

सारांश

आपने Ruby में uniq मेथड के बारे में सीखा! वास्तव में इसका उपयोग कैसे करें, यह क्यों उपयोगी है, और यह कैसे काम करता है।

अब इस मेथड के साथ अभ्यास करें ताकि आप इसे याद रख सकें।

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


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

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

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

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

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

    Map एक Ruby मेथड है जिसका उपयोग आप Arrays, Hashes और Ranges के साथ कर सकते हैं। map का मुख्य उपयोग डेटा को ट्रांसफॉर्म करना है। उदाहरण के लिए: स्ट्रिंग्स की एक सरणी दिए जाने पर, आप हर स्ट्रिंग पर जा सकते हैं और हर कैरेक्टर को UPPERCASE बना सकते हैं। या यदि आपके पास User ऑब्जेक्ट्स की एक सूची है... आ