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 (var 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. Tuttavia, il metodo forEach() offre una sintassi più pulita e concisa, rendendo il codice più leggibile.

Pubblicità

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 a una funzione 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);

È importante sottolineare che non è stato previsto un modo per interrompere un loop forEach(). Se si necessita di un comportamento di questo tipo, è consigliabile ricorrere a un normale loop e non a forEach(). In alternativa, si possono utilizzare metodi come Array.prototype.every() o Array.prototype.some() che permettono di uscire dal ciclo in base a determinate condizioni.

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). Pertanto, per garantire una maggiore compatibilità, è importante tenere presente le versioni dei browser utilizzati dagli utenti.

Per garantire la compatibilità con browser più vecchi, è possibile ricorrere a polyfill o implementazioni alternative. Ecco un esempio di polyfill per forEach:

if (!Array.prototype.forEach) {
  Array.prototype.forEach = function(callback, thisArg) {
    if (this == null) {
      throw new TypeError('this is null or not defined');
    }
    var O = Object(this);
    var len = O.length >>> 0; // convert to a uint32
    for (var i = 0; i < len; i++) {
      if (i in O) {
        callback.call(thisArg, O[i], i, O);
      }
    }
  };
}

In conclusione, il metodo forEach è uno strumento utile per iterare attraverso un array in modo semplice e leggibile. Tuttavia, è essenziale essere a conoscenza delle sue limitazioni, come l’impossibilità di interrompere il ciclo, e considerare l’implementazione di alternative o compatibilità per progetti destinati a un vasto pubblico.

Altri contenuti interessanti

Pubblicità

Potrebbero interessarti queste guide

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...

Numeri Random in JavaScript

La generazione di numeri random (numeri casuali) è un’operazione...

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...
Pubblicità