103 of 264 menu

Il metodo map

Il metodo map permette di applicare una funzione data per ogni elemento di un array. Inoltre, il metodo non modifica l'array originale, ma restituisce un array modificato.

Il metodo riceve come parametro una funzione, che verrà eseguita per ogni elemento dell'array. Ciò che questa funzione restituisce tramite return per l'elemento dell'array, diventerà il nuovo valore di quell'elemento (vedi esempi).

Alla funzione si possono passare 3 parametri. Se questi parametri sono presenti (non sono obbligatori), allora nel primo verrà inserito automaticamente l'elemento dell'array, nel secondo verrà inserito il suo numero nell'array (indice), e nel terzo - l'array stesso.

Sintassi

let nuovo_array = array.map(function(elemento, indice, array) { codice return elemento_modificato; });

Esempio

Creiamo un array, ogni elemento del quale è il doppio del corrispondente elemento dell'array iniziale:

let arr = [1, 2, 3, 4, 5]; let res = arr.map(function(elem) { return elem * 2; }); console.log(res);

Risultato dell'esecuzione del codice:

[2, 4, 6, 8, 10]

Esempio

Creiamo un array, ogni elemento del quale si ottiene così - il valore dell'elemento viene moltiplicato per il suo numero d'ordine nell'array:

let arr = [1, 2, 3, 4, 5]; let res = arr.map(function(elem, index) { return elem * index; }); console.log(res);

Risultato dell'esecuzione del codice:

[0, 2, 6, 12, 20]

Esempio

Se necessario, nel terzo parametro si può passare l'array stesso:

let arr = [1, 2, 3, 4, 5]; let res = arr.map(function(elem, index, arr) { // qui sarà disponibile l'array arr });

Esempio

Il metodo map può essere utilizzato anche per scorrere array multidimensionali. Supponiamo, ad esempio, di avere questo array:

let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];

Scorriamo questo array con map e stampiamo i suoi elementi in console:

let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; let result = arr.map(function(elem) { console.log(elem); });

Di conseguenza console.log stamperà [1, 2, 3], poi [4, 5, 6], poi [7, 8, 9].

Come vedi, nella variabile elem finiscono i sotto-array. Applichiamo ora il metodo map a ogni sotto-array ed eleviamo al quadrato ogni suo elemento:

let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; let result = arr.map(function(elem) { return elem.map(function(num) { return num * num; }); }); console.log(result);

Vedi anche

  • il metodo forEach,
    che applica una funzione per ogni elemento dell'array
  • il metodo filter,
    che permette di filtrare gli elementi dell'array
  • i metodi some e every,
    che eseguono un controllo sull'array
  • i metodi reduce e reduceRight,
    che riducono l'array a un singolo valore
Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta