Utilizzare le mappe in Javascript

Utilizzare le mappe in Javascript

L'oggetto Map, è un oggetto composto da record key/value, ed esiste in quasi tutti i linguaggi.

In Javascript è simile a Object, ma con alcune differenze.

Di cui, una delle più importanti, è che in Map è possibile usare valori primitivi, oggetti e funzioni, sia come chiave che come valore.

Inoltre dispone di alcuni metodi specifici che Object non ha.

Vi posto uno script, commentato, in cui eseguiamo diverse operazioni, e che mostra come usare una Map con diversi tipi di valori.

var map = new Map();
var keyString = "UNA STRINGA";
var keyObject = {};
var keyFunc = function () {};

// SETTIAMO UN PÒ DI VALORI
map.set(keyString, "Questo è il valore associato alla stringa");
map.set(keyObject, "Questo è il valore associato all'oggetto")
map.set(keyFunc, "Questo è il valore associato alla funzione");
map.set(NaN, "Questo è il valore associato a NAN");

// DIMENSIONE DELLA MAP
console.log(map.size);

// STAMPIAMO I VALORI UNO PER UNO
console.log(map.get(keyString));
console.log(map.get("UNA STRINGA")); // STESSO RISULTATO DI QUELLO SOPRA
console.log(map.get(keyObject));
console.log(map.get(keyFunc));
console.log(map.get(NaN));

// ITERIAMO SULLA MAPPA CON for..of
for (var [key, val] of map) {
    console.log(key + ": " + val);
}

for (var key of map.keys()) {
    console.log(key);
}

for (var val of map.values()) {
    console.log(val);
}

// ITERIAMO CON foreach
map.forEach(function (val, key) {
    console.log(key + ": " + val);
});

Fate un pò di prove; come avete visto abbiamo usato addirittura NaN (not a number).

Infine, oltre a questo, ci stanno altri metodi comodi da poter usare:

  • map.delete(key) --> cancella un record cercando la chiave
  • map.clear() --> svuota la mappa
  • map.has(key) --> cerca un record per chiave

Qui trovate una buona documentazione.

Enjoy!