back to top

Javascript Foreach: cos’è e come funziona

In Javascript, forEach è un metodo dell’oggetto Array che consente di ciclare tutti gli elementi contenuti in un array. Il supporto al metodo forEach è stato introdotto con ECMAScript 5 (2011), prima di tale innovazione il linguaggio Javascript non disponeva di un vero e proprio metodo forEach e per effettuare l’iterazione di un vettore era necessario ricorrere, ad esempio, al ciclo for().

var miaArray = ['Pippo', 'Pluto', 'Topolino'];

// utilizzo for()
for (i=0; i<miaArray.length; i++) {
  document.write(miaArray[i] + '<br>');
}

// utilizzo forEach()
miaArray.forEach(function (item) {
  document.write(item + '<br>');
})

Il risultato prodotto tramite il ciclo for() e forEach() sarà il medesimo.

Attraverso il metodo forEach() posso passare, oltre al valore dell’elemento corrente, anche il suo indice:

miaArray.forEach(function (item, index) {
  document.write(index + ' - ' + item + '<br>');
})

Si noti che negli esempi sopra riportati abbiamo sempre fatto ricorso ad una funziona anonima, ma nulla ci vieta di definire come callback una funzione come nell’esempio che segue:

function mostraRisultati(item,index) {
  document.write(index + ' - ' + item + '<br>');
}

miaArray.forEach(mostraRisultati);

E’ importante sottolineare che non è stato previsto un modo per interrompere un loop forEach(). Se si necessita di un comportamento di questo tipo è consigliabile ricorrere ad un normale loop e non un forEach().

Alternativamente al metodo forEach() di Javascript è possibile utilizzare jQuery:

var miaArray = ['Pippo', 'Pluto', 'Topolino'];
$.each(miaArray, function() {
  document.write(this + '<br>');
});

Compatibilità

Essendo stato introdotto con ES5, il metodo forEach() non può considerarsi pienamente cross-browser in quanto non supportato, ad esempio, sulle vecchie versioni di Internet Explorer (quelle precedenti alla 9).

Pubblicitร 
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).

Leggi anche...

Infinite scroll, come programmarlo su AMP e su Web con Javascript

L'infinite scroll è una tecnica di design e navigazione...

Codice Fiscale: 5 javascript per la verifica e il calcolo

Il codice fiscale รจ un identificativo tributario univoco che...

Math.ceil() – Arrotondare per eccesso con Javascript

Il metodo ceil() dell'oggetto Math di Javascript è utilizzato...

Minificare Javascript: librerie e strumenti online per comprimere il sorgente JS

La minificazione è un processo abbastanza diffuso nell'implementazione delle...

Javascript: svuotare un campo input o una textarea con un click

Quando si fornisce agli utenti un modulo per l'inserimento...

6 video player HTML5 per il tuo sito web

Con il rilascio delle specifiche definitive per HTML5 molte...
Pubblicitร