web-dev-qa-db-ja.com

JavaScriptのforEachループの「次の」繰り返しに進む

JavascriptのArray.forEach()ループの次の繰り返しにはどうすればいいですか?

次に例を示します。

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);
});

私は本当に驚いています - これはまだ質問ではありません - SO検索は何もしていません。 MDN docs ループから完全に抜け出すことについて言及しているだけで、次の反復には移動しません。

132
Don P

現在の反復をスキップしたい場合は、単純にreturnを使用できます。

あなたが関数の中にいるので、あなたが他の何かをする前にあなたがreturnを使っているならば、あなたは事実上returnステートメントの下のコードの実行をスキップしました。

229
rid

JavaScriptのforEachは、ループごとに他の言語からの使用方法とは少し異なります。 MDN を読むと、配列内の各要素に対して関数が実行されます。昇順。次の要素に進む、つまり次の関数を実行するには、計算を行わずに単純に現在の関数を返すことができます。

リターンを追加すると、ループの次の実行に進みます。

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

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

  console.log(elem);
});

出力:1、2、4

47

if文の中でtrueを返すだけです

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);
});
3
dimshik