JavaScript-kart

I denne veiledningen vil du lære om JavaScript Maps og WeakMaps ved hjelp av eksempler.

JavaScript ES6 har introdusert to nye datastrukturer, dvs. Mapog WeakMap.

Kart ligner på objekter i JavaScript som lar oss lagre elementer i et nøkkel / verdipar.

Elementene i et kart settes inn i en innsettingsrekkefølge. I motsetning til et objekt kan et kart imidlertid inneholde objekter, funksjoner og andre datatyper som nøkkel.

Opprett JavaScript-kart

For å lage en Mapbruker vi new Map()konstruktøren. For eksempel,

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

Sett inn element på kartet

Når du har opprettet et kart, kan du bruke set()metoden til å sette inn elementer i det. For eksempel,

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

Du kan også bruke objekter eller funksjoner som taster. For eksempel,

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

Få tilgang til kartelementer

Du kan få tilgang til Mapelementer ved hjelp av get()metoden. For eksempel,

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

Sjekk kartelementer

Du kan bruke has()metoden til å sjekke om elementet er i et kart. For eksempel,

 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

Fjerne elementer

Du kan bruke clear()og delete()metoden til å fjerne elementer fra et kart.

Den delete()metoden returnerer truehvis en bestemt nøkkel / verdipar eksisterer, og er blitt fjernet eller annet returnerer false. For eksempel,

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

Den clear()metoden fjerner alle nøkkel / verdipar fra et kart objekt. For eksempel,

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

JavaScript kartstørrelse

Du kan få antall elementer på et kart ved hjelp av sizeeiendommen. For eksempel,

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

Iterere gjennom et kart

Du kan gjenta gjennom kartelementene ved hjelp av for… of loop eller forEach () -metoden. Elementene er tilgjengelige i innsettingsrekkefølgen. For eksempel,

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

Produksjon

 navn- Jack alder- 27

Du kan også få de samme resultatene som programmet ovenfor ved hjelp av forEach()metoden. For eksempel,

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

Iterere over kartnøkler

Du kan gjenta over kartet og få nøkkelen ved hjelp av keys()metoden. For eksempel,

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

Produksjon

 navn Alder

Iterere over kartverdier

Du kan gjenta over kartet og få verdiene ved hjelp av values()metoden. For eksempel,

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

Produksjon

 Jack 27

Få nøkkel / verdier for kart

Du kan gjenta over kartet og få nøkkelen / verdien til et kart ved hjelp av entries()metoden. For eksempel,

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

Produksjon

 navn: Jack alder: 27

JavaScript-kart mot objekt

Kart Gjenstand
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 har metoder get(), set(), delete(), og has(). For eksempel,

 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 er ikke iterable

I motsetning til Maps er WeakMaps ikke iterable. For eksempel,

 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 Mapog WeakMapble introdusert i ES6 . Noen nettlesere støtter kanskje ikke bruken av dem. Hvis du vil vite mer, kan du gå til JavaScript Map-støtte og JavaScript WeakMap-støtte.

Interessante artikler...