Cosa significa la parola chiave `return` nella funzione` forEach`?

$('button').click(function () { [1, 2, 3, 4, 5].forEach(function (n) { if (n == 3) { // it should break out here and doesn't alert anything after return false } alert(n) }) }) 
   

La mia domanda: perché avvisa ancora il prossimo numero anche se chiamo il return ? Proprio come: Ignora il codice qui sotto e continua con l’elemento successivo

Dalla rete di sviluppatori Mozilla :

Non esiste alcun modo per interrompere o interrompere un ciclo forEach() diverso da un’eccezione. Se hai bisogno di un simile comportamento, il metodo forEach() è lo strumento sbagliato.

La risoluzione anticipata può essere eseguita con:

  • Un ciclo semplice
  • A forof loop
  • Array.prototype.every()
  • Array.prototype.some()
  • Array.prototype.find()
  • Array.prototype.findIndex()

Gli altri metodi Array: every() , some() , find() e findIndex() verificano gli elementi dell’array con un predicato che restituisce un valore di verità per determinare se è necessaria un’ulteriore iterazione.

Il return esce dalla funzione corrente , ma le iterazioni continuano, quindi ottieni la voce “next” che salta il if e avvisa il 4 …

Se hai bisogno di interrompere il ciclo, dovresti semplicemente usare un ciclo semplice come:

 $('button').click(function () { var arr = [1, 2, 3, 4, 5]; for(var i = 0; i < arr.length; i++) { var n = arr[i]; if (n == 3) { break; } alert(n); }) }) 

Puoi leggere ulteriori informazioni su js break e continua qui: http://www.w3schools.com/js/js_break.asp