Przejdź do" następnej " iteracji w pętli javascript forEach [duplikat]

To pytanie ma już odpowiedź tutaj:

Jak przejść do następnej iteracji pętli Javascript Array.forEach()?

Na przykład:

var myArr = [1,2,3,4];

myArr.forEach(function(elem){
  if (elem === 3) {
    // Go to "next" iteration. Or "continue" to next iteration...
  }

  console.log(elem);
});

Jestem naprawdę zaskoczony, że to już nie jest pytanie - więc wyszukiwanie nic nie daje, tak samo z sugerowanymi odpowiedziami. MDN docs wspomnij tylko o całkowitym wyrwaniu się z pętli, nie przechodząc do następnej iteracji.

Author: Don P, 2015-07-14

3 answers

Możesz po prostu return, jeśli chcesz pominąć bieżącą iterację.

Ponieważ jesteś w funkcji, jeśli return przed zrobieniem czegokolwiek innego, to skutecznie pominąłeś wykonanie kodu poniżej instrukcji return.

 144
Author: rid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-14 06:40:15

Foreach JavaScript działa nieco inaczej niż w innych językach dla każdej pętli. Jeśli odczyt na MDN , mówi, że Funkcja jest wykonywana dla każdego z elementów tablicy, w porządku rosnącym. Aby przejść do następnego elementu, czyli uruchomić następną funkcję, możesz po prostu zwrócić bieżącą funkcję bez konieczności wykonywania jakichkolwiek obliczeń.

Dodanie zwrotu i przejdzie do następnego uruchomienia loop:

var myArr = [1,2,3,4];

myArr.forEach(function(elem){
  if (elem === 3) {
    return;
  }

  console.log(elem);
});

Wyjście: 1, 2, 4

 31
Author: Christoffer Karlsson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-27 17:50:10

Po prostu zwróć true wewnątrz Twojej deklaracji if

var myArr = [1,2,3,4];

myArr.forEach(function(elem){
  if (elem === 3) {

      return true;

    // Go to "next" iteration. Or "continue" to next iteration...
  }

  console.log(elem);
});
 2
Author: dimshik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-14 06:43:40