JavaScripti kaart

Selles õpetuses saate näidete abil õppida JavaScripti kaarte ja WeakMapsi.

JavaScript ES6 on lisanud kaks uut andmestruktuurid ehk Mapja WeakMap.

Kaart sarnaneb JavaScripti objektidega, mis võimaldab meil elemente hoida võtme / väärtuse paaris.

Kaardi elemendid sisestatakse sisestamise järjekorras. Erinevalt objektist võib kaart aga võtmeta sisaldada objekte, funktsioone ja muid andmetüüpe.

Looge JavaScripti kaart

A loomiseks Mapkasutame new Map()konstruktorit. Näiteks,

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

Sisesta üksus kaardile

Pärast kaardi loomist saate set()meetodi abil sellele elemente lisada. Näiteks,

 // 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))

Võtmetena saate kasutada ka objekte või funktsioone. Näiteks,

 // 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"))

Juurdepääs kaardi elementidele

MapElementidele pääsete juurde get()meetodi abil. Näiteks,

 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")

Kontrollige kaardi elemente

Võite kasutada has()meetodit, et kontrollida, kui element on oma kaardi. Näiteks,

 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

Elementide eemaldamine

Võite kasutada clear()ja delete()eemaldamise meetod elemente kaart.

delete()Meetod tagastab truekui kindlaksmääratud võti / väärtus paari olemas ja on eemaldatud või muidu naaseb false. Näiteks,

 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 ()

clear()Meetod eemaldab kõik võtme / väärtuse paaridest alates Kaardi objekti. Näiteks,

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

JavaScripti kaardi suurus

Atribuudi abil saate kaardil elementide arvu size. Näiteks,

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

Korduvad kaardi kaudu

Kaardi elementide kaudu saate itereerida, kasutades meetodit for … of loop või forEach (). Elementidele pääseb juurde sisestamise järjekorras. Näiteks,

 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); )

Väljund

 nimi- Jack vanus- 27

Samuti võite forEach()meetodi abil saada samu tulemusi kui ülaltoodud programm . Näiteks,

 // 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) ))

Korduvad üle kaardiklahvide

Saate kaardi järgi korrata ja võtme hankida keys()meetodi abil. Näiteks,

 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) )

Väljund

 nime vanus

Korduvad üle kaardiväärtuste

Kaardil saate korrata ja values()meetodi abil väärtused hankida . Näiteks,

 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); )

Väljund

 Jack 27

Hankige kaardi põhiväärtused

Selle entries()meetodi abil saate kaardi korrata ja hankida kaardi võtme / väärtuse . Näiteks,

 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))`); )

Väljund

 nimi: Jacki vanus: 27

JavaScripti kaart vs objekt

Kaart Objekt
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 on meetodid get(), set(), delete(), ja has(). Näiteks,

 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 () 

Nõrgad kaardid pole korduvad

Erinevalt Mapsist pole WeakMaps iterable. Näiteks,

 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 )

JavaScripti Mapja need WeakMapvõeti kasutusele ES6-s . Mõni brauser ei pruugi nende kasutamist toetada. Lisateabe saamiseks külastage JavaScripti kaardi tugiteenust ja JavaScripti WeakMapi tugiteenuseid.

Huvitavad Artiklid...