JavaScript karta

U ovom ćete uputstvu uz primjere naučiti o JavaScript kartama i WeakMaps.

JavaScript ES6 je predstavio dva nova struktura podataka, odnosno Mapi WeakMap.

Map je sličan objektima u JavaScript-u koji nam omogućuje pohranu elemenata u par ključ / vrijednost .

Elementi u mapi umetnuti su redoslijedom umetanja. Međutim, za razliku od objekta, karta može sadržavati predmete, funkcije i druge vrste podataka kao ključ.

Stvorite JavaScript kartu

Za izradu a Mapkoristimo new Map()konstruktor. Na primjer,

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

Umetanje predmeta u mapu

Nakon što izradite mapu, pomoću nje set()možete umetnuti elemente. Na primjer,

 // 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 ili funkcije možete koristiti i kao tipke. Na primjer,

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

Pristupite elementima karte

Metodama možete pristupiti Mapelementima get(). Na primjer,

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

Provjerite elemente karte

Pomoću has()metode možete provjeriti nalazi li se element na mapi. Na primjer,

 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

Uklanjanje elemenata

Metodu clear()i možete koristiti delete()za uklanjanje elemenata s karte.

The delete()metoda vraća trueako određeni ključ / vrijednost par postoji i uklonjeni ili drugo vraća false. Na primjer,

 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 uklanja sve parova ključ / vrijednost s karte objekt. Na primjer,

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

Veličina JavaScript karte

Pomoću sizesvojstva možete dobiti broj elemenata na mapi . Na primjer,

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

Ponavljajte kroz kartu

Možete prelistavati elemente karte koristeći for… of loop ili forEach () metodu. Elementima se pristupa redoslijedom umetanja. Na primjer,

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

Izlaz

 ime- Jack dob- 27

Pomoću metode možete dobiti i iste rezultate kao gore navedeni program forEach(). Na primjer,

 // 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 ključeve karte

Možete prelaziti preko Karte i dobiti ključ pomoću keys()metode. Na primjer,

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

Izlaz

 ime dob

Ponavljajte vrijednosti karte

Možete prelaziti preko Karte i dobiti vrijednosti pomoću values()metode. Na primjer,

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

Izlaz

 Jack 27

Nabavite ključ / vrijednosti karte

Možete prelaziti preko Mape i pomoću entries()metode dobiti ključ / vrijednost Mape . Na primjer,

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

Izlaz

 ime: Jack dob: 27

JavaScript karta vs objekt

Karta 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 imaju metode get(), set(), delete(), i has(). Na primjer,

 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 nisu ponovljivi

Za razliku od Mapsa, WeakMaps nisu ponovljivi. Na primjer,

 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 Mapi WeakMapuvedeni su u ES6 . Neki preglednici možda ne podržavaju njihovu upotrebu. Da biste saznali više, posjetite podršku za JavaScript kartu i podršku za JavaScript WeakMap.

Zanimljivi članci...