forEach の戻り値は有効ですか? forEach ループを正常に中断するにはどうすればよいでしょうか?

ではJavaScriptforEach一般的に使用される配列トラバーサル方法です。ただし、 のステートメントの役割を誤解している人も多いため、この記事では、 のステートメントforEach有効かどうか、および forEach ループを正常に中断する方法についてreturn詳しく説明します。forEachreturn

forEachインはreturn効果あるの?

forEachループ内でステートメントを使用しても、returnループが中断されたり、ループが途中で終了したりすることはありません。for他のループ制御ステートメント ( 、などwhile) とは異なり、forEachin は現在のループ コールバック関数を終了するためにのみ使用され、ループ全体の実行の継続にはreturn影響しません。forEach

forEachループを断ち切るにはどうすればよいでしょうか?

特定の条件下でループを中断したい場合はforEach、いくつかの方法があります。

1. 例外スローを使用する:
ループ コールバック関数で例外をスローし、例外がキャッチされたときにループを中断できます。

// 代码
try {
  array.forEach(item => {
    if (condition) {
      throw new Error('Loop Break');
    }
    // 正常的循环处理
  });
} catch (e) {
  if (e.message !== 'Loop Break') {
    throw e;
  }
}

2.for...ofループを使用する:
for...ofループはステートメントによって中断できますbreakが、配列をイテレータに変換する必要があります。

// 代码
const array = [1, 2, 3];
const iterator = array[Symbol.iterator]();

for (const item of iterator) {
  if (condition) {
    break;
  }
  // 正常的循环处理
}

3. someoreveryメソッドを使用します。andメソッドは
some、リターンが発生したときにループを中断します。everytrue

// 代码
const array = [1, 2, 3];
array.some(item => {
  if (condition) {
    return true; // 中断循环
  }
  // 正常的循环处理
});

サンプルコード:

forEach以下に、ループを正常に中断する方法を示すサンプル コードを示します。

// 代码
const array = [1, 2, 3, 4, 5];
let found = false;

array.forEach(item => {
  if (item === 3) {
    found = true;
    return; // 这里的 return 不会中断 forEach 循环
  }
  console.log(item);
});

if (found) {
  console.log('Item found');
}

要約する

forEachのステートメントはループ全体を中断しませんがreturn、例外スロー、for...ofループ、someメソッドなどのメソッドを使用してevery、ループを中断する効果を得ることができます。利用する場合は、コードの可読性や保守性を確保するために、シナリオに応じて適切な方法を選択してください。

おすすめ

転載: blog.csdn.net/JaneLittle/article/details/132451891