Zemljevid JavaScript

V tej vadnici boste s pomočjo primerov spoznali JavaScript Maps in WeakMaps.

JavaScript ES6 je predstavil dve novi podatkovni strukturi, tj. MapIn WeakMap.

Map je podoben objektom v JavaScript, kar nam omogoča shranjevanje elementov v paru ključ / vrednost .

Elementi na zemljevidu so vstavljeni v vrstnem redu vstavljanja. Vendar pa lahko zemljevid za razliko od predmeta vsebuje predmete, funkcije in druge vrste podatkov kot ključ.

Ustvari zemljevid JavaScript

Če želite ustvariti a Map, uporabimo new Map()konstruktor. Na primer

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

Vstavite element na zemljevid

Ko ustvarite zemljevid, lahko z njegovo set()metodo vstavite elemente nanj. Na primer

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

Predmete ali funkcije lahko uporabite tudi kot tipke. Na primer

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

Dostop do elementov zemljevida

Do Mapelementov lahko dostopate z get()metodo. Na primer

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

Preverite elemente zemljevida

Z has()metodo lahko preverite, ali je element na zemljevidu. Na primer

 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

Odstranjevanje elementov

Lahko uporabite clear()in na delete()način, da odstranite elemente iz na zemljevidu.

V delete()postopek vrne true, če določen ključ / vrednost par obstaja in je bila odstranjena ali pa se vrne false. Na primer

 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()Metoda odstrani vse ključ / vrednost parov iz objekta Map. Na primer

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

Velikost zemljevida JavaScript

Število elementov na zemljevidu lahko dobite z uporabo sizelastnosti. Na primer

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

Ponavljajte po zemljevidu

Elemente Map lahko pregledujete z uporabo zanke for… of ali forEach (). Do elementov se dostopa po vrstnem redu vstavljanja. Na primer

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

Izhod

 ime - Jack starost - 27

Z forEach()metodo lahko dobite tudi enake rezultate kot zgornji program . Na primer

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

Ponavljajte nad tipkami zemljevida

Lahko ponovite zemljevid in dobite ključ z uporabo keys()metode. Na primer

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

Izhod

 ime starost

Ponavljajte vrednosti zemljevida

Lahko pregledujete Zemljevid in pridobite vrednosti z uporabo values()metode. Na primer

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

Izhod

 Jack 27

Pridobite ključ / vrednosti zemljevida

Lahko pregledujete Zemljevid in z entries()metodo dobite ključ / vrednost Zemljevida . Na primer

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

Izhod

 ime: Jack starost: 27

Zemljevid JavaScript v primerjavi z objektom

Zemljevid Predmet
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 imajo metode get(), set(), delete(), in has(). Na primer

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

WeakMaps niso ponovljivi

Za razliko od Zemljevidov WeakMaps niso iterable. Na primer

 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 )

JavaScript Mapin WeakMapso bili uvedeni v ES6 . Nekateri brskalniki morda ne podpirajo njihove uporabe. Če želite izvedeti več, obiščite podporo za zemljevid JavaScript in podporo za WeakMap za JavaScript.

Zanimive Članki...