Introduzione
In JavaScript, il tipo di dati array consiste in una lista di elementi. Ci sono molti utili metodi incorporati disponibili per gli sviluppatori JavaScript per lavorare con gli array. I metodi che modificano l’array originale sono noti come metodi mutatori, e i metodi che restituiscono un nuovo valore o rappresentazione sono noti come metodi accessori.
C’è una terza classe di metodi array, noti come metodi di iterazione, che sono metodi che operano su ogni elemento in un array, uno alla volta. Questi metodi sono strettamente associati ai cicli. In questo tutorial, ci concentreremo sui metodi di iterazione.
Per ottenere il massimo da questo tutorial, è necessario avere familiarità con la creazione, l’indicizzazione, la modifica e il loop degli array, che è possibile rivedere nel tutorial Comprensione degli Array in JavaScript.
In questo tutorial, utilizzeremo metodi di iterazione per ciclare attraverso gli array, eseguire funzioni su ogni elemento in un array, filtrare i risultati desiderati di un array, ridurre gli elementi dell’array a un singolo valore e cercare attraverso gli array per trovare valori o indici.
Nota: I metodi degli array sono correttamente scritti come Array.prototype.method()
, poiché Array.prototype
si riferisce all’oggetto Array
stesso. Per semplicità, elencheremo semplicemente il nome come method()
.
Comprensione delle funzioni freccia
Molti esempi in questo tutorial utilizzeranno le espressioni di funzione freccia di JavaScript, che sono rappresentate da un segno di uguale seguito da un segno di maggiore: =>
.
A function is a block of reusable code that can be executed. Traditionally, a function can be written with the following syntax:
La versione più recente di JavaScript al momento della scrittura consente l’uso di funzioni freccia, che possono essere scritte con la seguente sintassi:
Le parentesi in entrambi i casi possono contenere parametri. Quando c’è un solo parametro, le parentesi possono essere omesse, come segue:
Durante gli esempi in questo tutorial, useremo la sintassi della funzione freccia. Per leggere e capire di più sulle funzioni in JavaScript, leggi il riferimento alle funzioni sulla Mozilla Developer Network.
forEach()
Il metodo forEach()
chiama una funzione per ogni elemento in un array.
Cominciamo con il seguente array assegnato alla variabile fish
:
Possiamo usare forEach()
per stampare ogni elemento nell’array fish
sulla console.
Una volta fatto ciò, riceveremo l’output seguente:
Outputpiranha
barracuda
cod
eel
Un altro modo per farlo è utilizzando la parola chiave for
loop e testarla contro la proprietà length dell’array.
Il codice sopra avrà lo stesso output dell’uso del metodo forEach()
. Come metodo di iterazione specificamente destinato all’uso con gli array, forEach()
è più conciso e diretto per questo particolare compito.
map()
Il metodo map()
crea un nuovo array con i risultati di una chiamata di funzione su ogni elemento nell’array.
Per un esempio di come utilizzare il metodo di iterazione map()
, possiamo stampare ogni iterazione di un loop sulla console. map()
non muta l’array originale, ma restituisce invece un nuovo valore di array.
Outputpiranha
barracuda
cod
eel
Possiamo anche usare map()
per cambiare i valori di ogni elemento in un array. Per dimostrarlo, aggiungeremo una s
alla fine di ogni elemento nell’array fish
per pluralizzare ogni parola.
Output[ 'piranhas', 'barracudas', 'cods', 'eels' ]
La variabile originale fish
rimane invariata, ma pluralFish
contiene ora una versione modificata della variabile originale.
filter()
Il metodo filter()
crea un nuovo array con gli elementi che superano il risultato di un dato test.
Potremmo utilizzare filter()
per restituire un nuovo array contenente solo gli elementi in una lista che iniziano con una lettera specifica. Per fare ciò, possiamo utilizzare l’indicizzazione delle stringhe per chiamare il primo elemento (o lettera) in ciascun elemento stringa dell’array.
Output[ 'shark', 'squid', 'starfish' ]
Abbiamo testato quali elementi nell’array hanno una s
all’indice 0
, e abbiamo assegnato il risultato a una nuova variabile.
filter()
è un metodo di iterazione e non muta l’array originale.
reduce()
Il metodo reduce()
ridurrà un array a un singolo valore.
Questo è visto comunemente con numeri, come ad esempio trovare la somma di tutti i numeri in un array.
Output108
reduce()
può anche essere utilizzato con stringhe e altri tipi di dati. Il valore restituito da reduce()
può essere un numero, una stringa, un array o un altro tipo di dati. reduce()
è un metodo di iterazione che non muta l’array originale.
trova()
Il metodo trova()
restituisce il primo valore in un array che supera un dato test.
Come esempio, creeremo un array di creature marine.
Poi useremo il metodo trova()
per verificare se una qualsiasi delle creature nell’array sono cefalopodi.
Outputoctopus
Dato che polpo
è stata la prima voce nell’array a soddisfare il test nella funzione isCephalopod()
, è il primo valore restituito.
Il metodo trova()
può aiutarti a lavorare con array che contengono molti valori.
trovaIndice()
Il metodo trovaIndice()
restituisce il primo indice in un array che supera un dato test.
Possiamo usare lo stesso esempio di creatureMarine
dal metodo trova()
.
Utilizzando il test isCephalopod
, troveremo il numero di indice invece del valore della prima corrispondenza.
Output1
polpo
è il primo elemento a soddisfare il test ed ha un indice di 1
, pertanto è il numero di indice che viene restituito.
Se il test non viene soddisfatto, findIndex()
restituirà -1
.
Output-1
Il metodo findIndex()
è particolarmente utile quando si lavora con array contenenti molti elementi.
Conclusione
In questo tutorial, abbiamo esaminato i principali metodi di iterazione incorporati negli array in JavaScript. I metodi di iterazione operano su ogni elemento in un array e spesso eseguono una nuova funzione. Abbiamo visto come iterare attraverso gli array, cambiare il valore di ogni elemento in un array, filtrare e ridurre gli array, e trovare valori e indici.
Per rivedere le basi degli array, leggi Comprendere gli array in JavaScript. Per ulteriori informazioni sulla sintassi in JavaScript, consulta il nostro tutorial su “Comprendere la sintassi e la struttura del codice in JavaScript”.