ईएस 6 - संग्रह
ES6 दो नए डेटा संरचनाओं का परिचय देता है: मैप्स और सेट्स।
Maps - यह डेटा संरचना मान को एक कुंजी मैप करने में सक्षम बनाता है।
Sets- सेट सरणियों के समान हैं। हालाँकि, सेट डुप्लिकेट को प्रोत्साहित नहीं करते हैं।
एमएपीएस
मैप ऑब्जेक्ट एक साधारण कुंजी / मान युग्म है। मानचित्र में कीज़ और मान आदिम या ऑब्जेक्ट हो सकते हैं।
निम्नलिखित के लिए सिंटैक्स है।
new Map([iterable])
पैरामीटर iterable किसी भी चलने योग्य वस्तु का प्रतिनिधित्व करता है, जिसके तत्वों में एक कुंजी / मान युग्म शामिल होता है। मानचित्रों का आदेश दिया जाता है, अर्थात वे तत्वों को उनके सम्मिलन के क्रम में पार करते हैं।
मानचित्र गुण
अनु क्रमांक | संपत्ति विवरण |
---|---|
1 | Map.prototype.size यह गुण मैप ऑब्जेक्ट में कुंजी / मान जोड़े की संख्या देता है। |
बुनियादी मानचित्र संचालन को समझना
सेट () फ़ंक्शन मैप ऑब्जेक्ट में कुंजी के लिए मान सेट करता है। सेट () फ़ंक्शन दो पैरामीटर लेता है, अर्थात् कुंजी और उसका मान। यह फ़ंक्शन मैप ऑब्जेक्ट को वापस करता है।
मैप ऑब्जेक्ट में निर्दिष्ट कुंजी मिली है या नहीं, यह दर्शाता है कि () फ़ंक्शन बूलियन मान लौटाता है। यह फ़ंक्शन पैरामीटर के रूप में एक कुंजी लेता है।
var map = new Map();
map.set('name','Tutorial Point');
map.get('name'); // Tutorial point
उपरोक्त उदाहरण एक मैप ऑब्जेक्ट बनाता है। मानचित्र में केवल एक तत्व है। तत्व कुंजी द्वारा चिह्नित किया गया हैname। कुंजी को एक मान पर मैप किया जाता हैTutorial point।
Note- मानचित्र समान मूल्यों के बीच अंतर करते हैं लेकिन विभिन्न प्रकार के डेटा को सहन करते हैं। दूसरे शब्दों में, एinteger key 1 एक से अलग माना जाता है string key “1”। इस अवधारणा को बेहतर ढंग से समझने के लिए निम्नलिखित उदाहरण पर विचार करें
var map = new Map();
map.set(1,true);
console.log(map.has("1")); //false
map.set("1",true);
console.log(map.has("1")); //true
उत्पादन
false
true
set()विधि भी श्रृंखला योग्य है। निम्नलिखित उदाहरण पर विचार करें।
var roles = new Map();
roles.set('r1', 'User')
.set('r2', 'Guest')
.set('r3', 'Admin');
console.log(roles.has('r1'))
उत्पादन
True
उपरोक्त उदाहरण, एक मैप ऑब्जेक्ट को परिभाषित करता है। उदाहरण चेन को कुंजी / मान युग्म को परिभाषित करने के लिए सेट () फ़ंक्शन करता है।
get() फ़ंक्शन का उपयोग निर्दिष्ट कुंजी के अनुरूप मान प्राप्त करने के लिए किया जाता है।
मैप कंस्ट्रक्टर को एक ऐरे भी पास किया जा सकता है। इसके अलावा, मानचित्र भी सरणी का प्रतिनिधित्व करने के लिए प्रसार ऑपरेटर के उपयोग का समर्थन करता है।
उदाहरण
var roles = new Map([
['r1', 'User'],
['r2', 'Guest'],
['r3', 'Admin'],
]);
console.log(roles.get('r2'))
निम्नलिखित आउटपुट उपरोक्त कोड के सफल निष्पादन पर प्रदर्शित होता है।
Guest
Note - यदि मानचित्र में मुख्य निर्दिष्ट मौजूद नहीं है तो प्राप्त () फ़ंक्शन अपरिभाषित है।
सेट () कुंजी के लिए मान को बदलता है, अगर यह पहले से ही नक्शे में मौजूद है। निम्नलिखित उदाहरण पर विचार करें।
var roles = new Map([
['r1', 'User'],
['r2', 'Guest'],
['r3', 'Admin'],
]);
console.log(`value of key r1 before set(): ${roles.get('r1')}`)
roles.set('r1','superUser')
console.log(`value of key r1 after set(): ${roles.get('r1')}`)
निम्नलिखित आउटपुट उपरोक्त कोड के सफल निष्पादन पर प्रदर्शित होता है।
value of key r1 before set(): User
value of key r1 after set(): superUser
मानचित्र के तरीके
अनु क्रमांक | विधि और विवरण |
---|---|
1 | Map.prototype.clear () मैप ऑब्जेक्ट से सभी कुंजी / मूल्य जोड़े निकालता है। |
2 | Map.prototype.delete (key) कुंजी से संबंधित किसी भी मूल्य को निकालता है और वह मान लौटाता है, जो Map.prototyp.has (कुंजी) पहले लौटा होगा। Map.prototype.has (कुंजी) गलत बाद में वापस आ जाएगी। |
3 | Map.prototype.entries () एक नया Iterator ऑब्जेक्ट देता है जिसमें सम्मिलित है an array of प्रविष्टि क्रम में मैप ऑब्जेक्ट में प्रत्येक तत्व के लिए [कुंजी, मूल्य]। |
4 | Map.prototype.forEach (callbackFn [, thisArg]) कॉल callbackFnसम्मिलन क्रम में मानचित्र ऑब्जेक्ट में मौजूद प्रत्येक कुंजी-मूल्य जोड़ी के लिए एक बार। यदि यह एकआर्ग पैरामीटर forEach को प्रदान किया जाता है, तो इसका उपयोग प्रत्येक कॉलबैक के लिए 'इस' मान के रूप में किया जाएगा। |
5 | Map.prototype.keys () एक नया Iterator ऑब्जेक्ट देता है जिसमें शामिल है keys सम्मिलन क्रम में मैप ऑब्जेक्ट में प्रत्येक तत्व के लिए। |
6 | Map.prototype.values () एक नया Iterator ऑब्जेक्ट देता है जिसमें सम्मिलित है an array of प्रविष्टि क्रम में मैप ऑब्जेक्ट में प्रत्येक तत्व के लिए [कुंजी, मूल्य]। |
लूप के लिए ...
निम्न उदाहरण लूप के लिए…
'use strict'
var roles = new Map([
['r1', 'User'],
['r2', 'Guest'],
['r3', 'Admin'],
]);
for(let r of roles.entries())
console.log(`${r[0]}: ${r[1]}`);
निम्नलिखित आउटपुट उपरोक्त कोड के सफल निष्पादन पर प्रदर्शित होता है।
r1: User
r2: Guest
r3: Admin
कमजोर नक्शे
एक कमजोर नक्शा निम्नलिखित अपवादों वाले नक्शे के समान है -
इसकी कुंजी वस्तुएं होनी चाहिए।
कमजोर नक्शे में कीज़ को इकट्ठा किया जा सकता है। Garbage collection एक कार्यक्रम में अपरिचित वस्तुओं द्वारा कब्जा कर ली गई मेमोरी को साफ़ करने की एक प्रक्रिया है।
एक कमजोर नक्शा iterated या साफ़ नहीं किया जा सकता है।
उदाहरण: कमजोर नक्शा
'use strict'
let weakMap = new WeakMap();
let obj = {};
console.log(weakMap.set(obj,"hello"));
console.log(weakMap.has(obj));// true
निम्नलिखित आउटपुट उपरोक्त कोड के सफल निष्पादन पर प्रदर्शित होता है।
WeakMap {}
true
सेट
एक सेट एक ES6 डेटा संरचना है। यह एक अपवाद के साथ एक सरणी के समान है जिसमें यह डुप्लिकेट नहीं हो सकता है। दूसरे शब्दों में, यह आपको अद्वितीय मूल्यों को संग्रहीत करने देता है। सेट दोनों आदिम मूल्यों और वस्तु संदर्भों का समर्थन करते हैं।
नक्शों की तरह ही, सेट भी ऑर्डर किए जाते हैं, यानी तत्वों को उनके सम्मिलन क्रम में पुनरावृत्त किया जाता है। निम्नलिखित सिंटैक्स का उपयोग करके एक सेट को इनिशियलाइज़ किया जा सकता है।
गुण सेट करें
अनु क्रमांक | संपत्ति विवरण |
---|---|
1 | Set.prototype.size सेट ऑब्जेक्ट में मानों की संख्या लौटाता है। |
तरीके सेट करें
अनु क्रमांक | विधि और विवरण |
---|---|
1 | Set.prototype.add (मान) सेट ऑब्जेक्ट पर दिए गए मान के साथ एक नया तत्व जोड़ता है। सेट ऑब्जेक्ट लौटाता है। |
2 | Set.prototype.clear () सेट ऑब्जेक्ट से सभी तत्वों को निकालता है। |
3 | Set.prototype.delete (मान) मान से संबंधित तत्व को निकालता है। |
4 | Set.prototype.entries () एक नया Iterator ऑब्जेक्ट देता है जिसमें सम्मिलित है an array ofसम्मिलन क्रम में सेट ऑब्जेक्ट में प्रत्येक तत्व के लिए [मूल्य, मूल्य]। इसे मैप ऑब्जेक्ट के समान रखा जाता है, ताकि प्रत्येक प्रविष्टि की कुंजी और मान के लिए समान मूल्य हो। |
5 | Set.prototype.forEach (callbackFn [, thisArg]) कॉल callbackFnसम्मिलन क्रम में, सेट ऑब्जेक्ट में मौजूद प्रत्येक मान के लिए एक बार। अगरathisArg पैरामीटर forEach को प्रदान किया जाता है, इसका उपयोग प्रत्येक कॉलबैक के लिए 'इस' मान के रूप में किया जाएगा। |
6 | Set.prototype.has (मान) एक बूलियन यह कहते हुए लौटाता है कि क्या सेट ऑब्जेक्ट में दिए गए मान के साथ कोई तत्व मौजूद है या नहीं। |
7 | Set.prototype.values () एक नया Iterator ऑब्जेक्ट देता है जिसमें शामिल है values सम्मिलन क्रम में सेट ऑब्जेक्ट में प्रत्येक तत्व के लिए। |
कमजोर सेट
कमजोर सेट में केवल ऑब्जेक्ट हो सकते हैं, और जिन वस्तुओं में वे होते हैं वे कचरा एकत्र कर सकते हैं। कमजोर मानचित्रों की तरह, कमजोर सेटों को पुनरावृत्त नहीं किया जा सकता है।
उदाहरण: कमजोर सेट का उपयोग करना
'use strict'
let weakSet = new WeakSet();
let obj = {msg:"hello"};
weakSet.add(obj);
console.log(weakSet.has(obj));
weakSet.delete(obj);
console.log(weakSet.has(obj));
निम्नलिखित आउटपुट उपरोक्त कोड के सफल निष्पादन पर प्रदर्शित होता है।
true
false
इटरेटर
Iterator एक वस्तु है जो एक समय में एक वस्तुओं के संग्रह तक पहुंचने की अनुमति देता है। सेट और मैप दोनों में ऐसी विधियाँ हैं जो एक पुनरावर्तक लौटाती हैं।
Iterators वस्तुओं के साथ हैं next()तरीका। जब अगली () विधि लागू की जाती है, तो वह किसी वस्तु के साथ लौटती है'value' तथा 'done'गुण । 'किया' बूलियन है, यह संग्रह में सभी वस्तुओं को पढ़ने के बाद सच हो जाएगा
उदाहरण 1: सेट और इटरेटर
var set = new Set(['a','b','c','d','e']);
var iterator = set.entries();
console.log(iterator.next())
निम्नलिखित आउटपुट उपरोक्त कोड के सफल निष्पादन पर प्रदर्शित होता है।
{ value: [ 'a', 'a' ], done: false }
चूंकि, सेट कुंजी / मान को संग्रहीत नहीं करता है, मान सरणी में समान कुंजी और मान होता है। किया जा रहा है गलत होगा क्योंकि वहाँ अधिक तत्वों को पढ़ने के लिए कर रहे हैं।
उदाहरण 2: सेट और इटरेटर
var set = new Set(['a','b','c','d','e']);
var iterator = set.values();
console.log(iterator.next());
निम्नलिखित आउटपुट उपरोक्त कोड के सफल निष्पादन पर प्रदर्शित होता है।
{ value: 'a', done: false }
उदाहरण 3: सेट और इटरेटर
var set = new Set(['a','b','c','d','e']);
var iterator = set.keys();
console.log(iterator.next());
निम्नलिखित आउटपुट उपरोक्त कोड के सफल निष्पादन पर प्रदर्शित होता है।
{ value: 'a', done: false }
उदाहरण 4: मैप और इटरेटर
var map = new Map([[1,'one'],[2,'two'],[3,'three']]);
var iterator = map.entries();
console.log(iterator.next());
निम्नलिखित आउटपुट उपरोक्त कोड के सफल निष्पादन पर प्रदर्शित होता है।
{ value: [ 1, 'one' ], done: false }
उदाहरण 5: मैप और इटरेटर
var map = new Map([[1,'one'],[2,'two'],[3,'three']]);
var iterator = map.values();
console.log(iterator.next());
निम्नलिखित आउटपुट उपरोक्त कोड के सफल निष्पादन पर प्रदर्शित होता है।
{value: "one", done: false}
उदाहरण 6: मैप और इटरेटर
var map = new Map([[1,'one'],[2,'two'],[3,'three']]);
var iterator = map.keys();
console.log(iterator.next());
निम्नलिखित आउटपुट उपरोक्त कोड के सफल निष्पादन पर प्रदर्शित होता है।
{value: 1, done: false}