forEach in JavaScript

Utente HTML.it
chiede

forEach in JavaScript

Redazione HTML.it
risponde

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.

>> Leggi di più sul costrutto “for … in” in JavaScript