JavaScript térkép

Ebben az oktatóanyagban példák segítségével megismerheti a JavaScript és a WeakMaps térképeket.

A JavaScript ES6 két új adatstruktúrát vezetett be, azaz: Mapés WeakMap.

A térkép hasonló a JavaScript-ben található objektumokhoz, amely lehetővé teszi számunkra, hogy elemeket tároljunk egy kulcs / érték párban.

A Map elemei beszúrási sorrendben kerülnek beillesztésre. Az objektumokkal ellentétben azonban a térkép objektumokat, függvényeket és egyéb adattípusokat tartalmazhat kulcsként.

Hozzon létre JavaScript-térképet

A létrehozásához Maphasználjuk a new Map()konstruktort. Például,

 // create a Map const map1 = new Map(); // an empty map console.log(map1); // Map ()

Elem beszúrása a térképbe

Térkép létrehozása után a set()módszer segítségével elemeket illeszthet be hozzá. Például,

 // create a set let map1 = new Map(); // insert key-value pair map1.set('info', (name: 'Jack', age: 26)); console.log(map1); // Map ("info" => (name: "Jack", age: 26))

Objektumokat vagy funkciókat is használhat kulcsként. Például,

 // Map with object key let map2 = new Map(); let obj = (); map2.set(obj, (name: 'Jack', age: "26")); console.log(map2); // Map (() => (name: "Jack", age: "26"))

Hozzáférés a térképelemekhez

Az Mapelemekhez a get()módszer segítségével férhet hozzá . Például,

 let map1 = new Map(); map1.set('info', (name: 'Jack', age: "26")); // access the elements of a Map console.log(map1.get('info')); // (name: "Jack", age: "26")

Ellenőrizze a Térkép elemeket

A has()módszer segítségével ellenőrizheti, hogy az elem szerepel-e egy térképen. Például,

 const set1 = new Set((1, 2, 3)); let map1 = new Map(); map1.set('info', (name: 'Jack', age: "26")); // check if an element is in Set console.log(map1.has('info')); // true

Elemek eltávolítása

A clear()és a delete()módszer segítségével eltávolíthatja az elemeket a térképről.

A delete()metódus akkor tér vissza, trueha egy megadott kulcs / érték pár létezik, és eltávolításra került, vagy pedig visszatér false. Például,

 let map1 = new Map(); map1.set('info', (name: 'Jack', age: "26")); // removing a particular element map1.delete('address'); // false console.log(map1); // Map ("info" => (name: "Jack", age: "26")) map1.delete('info'); // true console.log(map1); // Map ()

A clear()módszer eltávolítja az összes kulcs / érték párot egy Térkép objektumból. Például,

 let map1 = new Map(); map1.set('info', (name: 'Jack', age: "26")); // removing all element map1.clear(); // false console.log(map1); // Map ()

JavaScript térképméret

A tulajdonság segítségével megismerheti a Térkép elemei számát size. Például,

 let map1 = new Map(); map1.set('info', (name: 'Jack', age: "26")); console.log(map1.size); // 1

Iterál egy térképen keresztül

A Térkép elemeken keresztül iterálhat a for… of ciklus vagy a forEach () módszerrel. Az elemeket a beillesztési sorrendben lehet elérni. Például,

 let map1 = new Map(); map1.set('name', 'Jack'); map1.set('age', '27'); // looping through Map for (let (key, value) of map1) ( console.log(key + '- ' + value); )

Kimenet

 név- Jack életkora- 27

A forEach()módszerrel ugyanazt az eredményt is elérheti, mint a fenti program . Például,

 // using forEach method() let map1 = new Map(); map1.set('name', 'Jack'); map1.set('age', '27'); // looping through Map map1.forEach(function(value, key) ( console.log(key + '- ' + value) ))

Térképes kulcsok fölött iterál

Iterálhat a Map felett, és a keys()módszerrel megszerezheti a kulcsot . Például,

 let map1 = new Map(); map1.set('name', 'Jack'); map1.set('age', '27'); // looping through the Map for (let key of map1.keys()) ( console.log(key) )

Kimenet

 név életkor

Térképes értékek ismétlése

Iterálhat a Térkép felett, és a values()módszerrel megkaphatja az értékeket . Például,

 let map1 = new Map(); map1.set('name', 'Jack'); map1.set('age', '27'); // looping through the Map for (let values of map1.values()) ( console.log(values); )

Kimenet

 Jack 27

Kap kulcs / értékek Map

Iterálhat a Térkép felett, és a entries()módszer segítségével megszerezheti a Térkép kulcsát / értékét . Például,

 let map1 = new Map(); map1.set('name', 'Jack'); map1.set('age', '27'); // looping through the Map for (let elem of map1.entries()) ( console.log(`$(elem(0)): $(elem(1))`); )

Kimenet

 név: Jack életkora: 27

JavaScript térkép vs objektum

Térkép Tárgy
Maps can contain objects and other data types as keys. Objects can only contain strings and symbols as keys.
Maps can be directly iterated and their value can be accessed. Objects can be iterated by accessing its keys.
The number of elements of a Map can be determined by size property. The number of elements of an object needs to be determined manually.
Map performs better for programs that require the addition or removal of elements frequently. Object does not perform well if the program requires the addition or removal of elements frequently.

JavaScript WeakMap

The WeakMap is similar to a Map. However, WeakMap can only contain objects as keys. For example,

 const weakMap = new WeakMap(); console.log(weakMap); // WeakMap () let obj = (); // adding object (element) to WeakMap weakMap.set(obj, 'hello'); console.log(weakMap); // WeakMap (() => "hello")

When you try to add other data types besides objects, WeakMap throws an error. For example,

 const weakMap = new WeakMap(); // adding string as a key to WeakMap weakMap.set('obj', 'hello');
 // throws error // TypeError: Attempted to set a non-object key in a WeakMap

WeakMap Methods

WeakMaps van módszerek get(), set(), delete(), és a has(). Például,

 const weakMap = new WeakMap(); console.log(weakMap); // WeakMap () let obj = (); // adding object (element) to WeakMap weakMap.set(obj, 'hello'); console.log(weakMap); // WeakMap (() => "hello") // get the element of a WeakMap console.log(weakMap.get(obj)); // hello // check if an element is present in WeakMap console.log(weakMap.has(obj)); // true // delete the element of WeakMap console.log(weakMap.delete(obj)); // true console.log(weakMap); // WeakMap () 

A WeakMaps nem írható

A Maps-sel ellentétben a WeakMaps nem iterálható. Például,

 const weakMap = new WeakMap(); console.log(weakMap); // WeakMap () let obj = (); // adding object (element) to WeakMap weakMap.set(obj, 'hello'); // looping through WeakMap for (let i of weakMap) ( console.log(i); // TypeError )

JavaScriptet Mapés WeakMapaz ES6- ban vezették be . Egyes böngészők nem támogatják a használatukat. További információkért keresse fel a JavaScript Map és a Java WeakMap támogatást.

érdekes cikkek...