forEach() in JavaScript è un metodo dell’oggetto Array che consente di applicare una azione a ciascun elemento di un array percorrendolo in senso discendente (da 1 a n). A tutti gli effetti si tratta di una iterazione, un ciclo, ottenuto senza scomodarci troppo nel definire variabili contatori, semplicemente associando una funzione di callback che deve essere eseguita ad ogni step.
var mesi = ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"]; mesi.forEach(function(item, index){ console.log('['+index+'] '+item); });
In questo esempio abbiamo definito la funzione di callback in modo implicito, prende come parametri i nomi dell’elemento corrente (item
nel nostro caso) e l’indice dell’elemento corrente (facoltativo). Inoltre la callback prende anche un terzo parametro in cui riscrive l’array che sta scorrendo.
Array associativi e iterazioni
In PHP foreach
è utilizzato per ciclare all’interno di array associativi (coppie chiave/valore) e in JavaScript possiamo ottenere lo stesso meccanismo sfruttando una particolare accezione del ciclo for, la sintassi è la seguente:
var array_associativo = new Array(); array_associativo['gen'] = 'Gennaio'; array_associativo['feb'] = 'Febbraio'; array_associativo['mar'] = 'Marzo'; array_associativo['apr'] = 'Aprile'; array_associativo['mag'] = 'Maggio'; array_associativo['giu'] = 'Giugno'; array_associativo['lug'] = 'Luglio'; array_associativo['ago'] = 'Agosto'; array_associativo['set'] = 'Settembre'; array_associativo['ott'] = 'Ottobre'; array_associativo['nov'] = 'Novembre'; array_associativo['dic'] = 'Dicembre'; for (var chiave in array_associativo) { document.write(chiave + '-' + array_associativo[chiave] + ''); }
Praticamente è un vero e proprio ciclo for con una condizione in più che permette l’analisi di un array associativo.