जावास्क्रिप्ट सेट और कमजोर

इस ट्यूटोरियल में, आप उदाहरणों की सहायता से जावास्क्रिप्ट सेट्स और वीकसेट्स के बारे में जानेंगे।

जावास्क्रिप्ट ईएस 6 ने दो नई डेटा संरचनाएं पेश की हैं, अर्थात Setऔर WeakSet

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

जावास्क्रिप्ट सेट बनाएँ

ए बनाने के लिए Set, आपको new Set()कंस्ट्रक्टर का उपयोग करने की आवश्यकता है । उदाहरण के लिए,

 // create Set const set1 = new Set(); // an empty set console.log(set1); // Set () // Set with multiple types of value const set2 = new Set((1, 'hello', (count : true))); console.log(set2); // Set (1, "hello", (count: true))

जब डुप्लिकेट मान किसी Setऑब्जेक्ट के लिए पास किए जाते हैं , तो डुप्लिकेट मान को बाहर रखा जाता है।

 // Set with duplicate values const set3 = new Set((1, 1, 2, 2)); console.log(set3); // Set (1, 2)

एक्सेस सेट एलीमेंट्स

आप विधि Setका उपयोग करके तत्वों तक पहुंच सकते हैं values()और जांच सकते हैं कि क्या विधि Setका उपयोग has()करने के अंदर कोई तत्व है । उदाहरण के लिए,

 const set1 = new Set((1, 2, 3)); // access the elements of a Set console.log(set1.values()); // Set Iterator (1, 2, 3)

has()यदि तत्व सेट में है, तो आप जांचने के लिए विधि का उपयोग कर सकते हैं । उदाहरण के लिए,

 const set1 = new Set((1, 2, 3)); // check if an element is in Set console.log(set1.has(1));

नए तत्वों को जोड़ना

आप add()विधि का उपयोग करके सेट में तत्वों को जोड़ सकते हैं । उदाहरण के लिए,

 const set = new Set((1, 2)); console.log(set.values()); // adding new elements set.add(3); console.log(set.values()); // adding duplicate elements // does not add to Set set.add(1); console.log(set.values());

आउटपुट

 सेट Iterator (1, 2) सेट Iterator (1, 2, 3) सेट Iterator (1, 2, 3)

तत्वों को निकालना

आप सेट से तत्वों को निकालने के लिए clear()और delete()विधि का उपयोग कर सकते हैं ।

delete()विधि एक से एक विशिष्ट तत्व को हटा Set। उदाहरण के लिए,

 const set = new Set((1, 2, 3)); console.log(set.values()); // Set Iterator (1, 2, 3) // removing a particular element set.delete(2); console.log(set.values()); // Set Iterator (1, 3)

clear()विधि एक से सभी तत्वों को हटा Set। उदाहरण के लिए,

 const set = new Set((1, 2, 3)); console.log(set.values()); // Set Iterator (1, 2, 3) // remove all elements of Set set.clear(); console.log(set.values()); // Set Iterator ()

Iterate समूह

आप लूप या forEach () विधि के लिए सेट तत्वों के माध्यम से पुनरावृति कर सकते हैं। तत्वों को सम्मिलन क्रम में पहुँचा जाता है। उदाहरण के लिए,

 const set = new Set((1, 2, 3)); // looping through Set for (let i of set) ( console.log(i); )

आउटपुट

 १ २ ३

जावास्क्रिप्ट कमजोर

WeakSet सेट के समान है। हालाँकि, WeakSet में केवल ऑब्जेक्ट्स हो सकते हैं जबकि सेट में किसी भी प्रकार के डेटा जैसे स्ट्रिंग्स, संख्याएँ, ऑब्जेक्ट्स आदि हो सकते हैं, उदाहरण के लिए, आदि।

 const weakSet = new WeakSet(); console.log(weakSet); // WeakSet () let obj = ( message: 'Hi', sendMessage: true ) // adding object (element) to WeakSet weakSet.add(obj); console.log(weakSet); // WeakSet ((message: "Hi", sendMessage: true))

जब आप ऑब्जेक्ट के अलावा अन्य डेटा प्रकारों को जोड़ने का प्रयास करते हैं, तो WeakSet एक त्रुटि फेंकता है। उदाहरण के लिए,

 // trying to add string to WeakSet weakSet.add('hello'); // throws error // TypeError: Attempted to add a non-object key to a WeakSet console.log(weakSet);

कमजोर तरीके

WeakSets तरीकों add(), delete()और has()। उदाहरण के लिए,

 const weakSet = new WeakSet(); console.log(weakSet); // WeakSet () const obj = (a:1); // add to a weakSet weakSet.add(obj); console.log(weakSet); // WeakSet ((a: 1)) // check if an element is in Set console.log(weakSet.has(obj)); // true // delete elements weakSet.delete(obj); console.log(weakSet); // WeakSet ()

कमजोर नहीं होते हैं

सेट के विपरीत, WeakSets चलने योग्य नहीं हैं। उदाहरण के लिए,

 const weakSet = new WeakSet((a:1)); // looping through WeakSet for (let i of weakSet) ( // TypeError console.log(i); )

गणितीय सेट संचालन

जावास्क्रिप्ट में, सेट गणितीय कार्यों जैसे कि यूनियन, चौराहे, अंतर आदि के प्रदर्शन के लिए अंतर्निहित तरीके प्रदान नहीं करता है, हालांकि, हम उन कार्यों को करने के लिए प्रोग्राम बना सकते हैं।

उदाहरण: सेट यूनियन ऑपरेशन

 // perform union operation // contain elements of both sets function union(a, b) ( let unionSet = new Set(a); for (let i of b) ( unionSet.add(i); ) return unionSet ) // two sets of fruits let setA = new Set(('apple', 'mango', 'orange')); let setB = new Set(('grapes', 'apple', 'banana')); let result = union(setA, setB); console.log(result);

आउटपुट

 सेट ("सेब", "आम", "नारंगी", "अंगूर", "केला")

उदाहरण: सेट इंटर्सेशन ऑपरेशन

 // perform intersection operation // elements of set a that are also in set b function intersection(setA, setB) ( let intersectionSet = new Set(); for (let i of setB) ( if (setA.has(i)) ( intersectionSet.add(i); ) ) return intersectionSet; ) // two sets of fruits let setA = new Set(('apple', 'mango', 'orange')); let setB = new Set(('grapes', 'apple', 'banana')); let result = intersection(setA, setB); console.log(result);

आउटपुट

 सेट ("सेब")

उदाहरण: सेट अंतर ऑपरेशन

 // perform difference operation // elements of set a that are not in set b function difference(setA, setB) ( let differenceSet = new Set(setA) for (let i of setB) ( differenceSet.delete(i) ) return differenceSet ) // two sets of fruits let setA = new Set(('apple', 'mango', 'orange')); let setB = new Set(('grapes', 'apple', 'banana')); let result = difference(setA, setB); console.log(result);

आउटपुट

 सेट ("आम", "नारंगी")

उदाहरण: सेट सबसेट ऑपरेशन

 // perform subset operation // true if all elements of set b is in set a function subset(setA, setB) ( for (let i of setB) ( if (!setA.has(i)) ( return false ) ) return true ) // two sets of fruits let setA = new Set(('apple', 'mango', 'orange')); let setB = new Set(('apple', 'orange')); let result = subset(setA, setB); console.log(result);

आउटपुट

 सच

जावास्क्रिप्ट Setsऔर ES6WeakSets में पेश किए गए थे । कुछ ब्राउज़र उनके उपयोग का समर्थन नहीं कर सकते हैं। अधिक जानने के लिए, जावास्क्रिप्ट सेट सपोर्ट और जावास्क्रिप्ट वीकसेट सपोर्ट पर जाएँ।

दिलचस्प लेख...