ではJavaScript
、forEach
一般的に使用される配列トラバーサル方法です。ただし、 のステートメントの役割を誤解している人も多いため、この記事では、 のステートメントがforEach
有効かどうか、および forEach ループを正常に中断する方法についてreturn
詳しく説明します。forEach
return
forEach
インはreturn
効果あるの?
forEach
ループ内でステートメントを使用しても、return
ループが中断されたり、ループが途中で終了したりすることはありません。for
他のループ制御ステートメント ( 、などwhile
) とは異なり、forEach
in は現在のループ コールバック関数を終了するためにのみ使用され、ループ全体の実行の継続には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. some
orevery
メソッドを使用します。andメソッドは
some
、リターンが発生したときにループを中断します。every
true
// 代码
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
、ループを中断する効果を得ることができます。利用する場合は、コードの可読性や保守性を確保するために、シナリオに応じて適切な方法を選択してください。