ネストしたループから抜けるには
JSのループ(for)から抜けるにはbreak、処理を終えるにはreturnを使えばいいですが、ネストしたループにおいて、特定の条件を満たしたらその全てから抜けるようにするには、工夫が必要です。
その一つの方法がループにラベルを貼る方法になります。
ラベル付きループとは?
JavaScriptでは、ラベルを使ってループに名前をつけることができます。これにより、通常のループ構造の外側から内側のループを制御できます。ラベルを使用すると、内側のループを外側のループに関連付けることができます。
ラベル付きループは次のように構文されます。
outerloop: for (var i = 0; i < 5; i++) {
innerloop: for (var j = 0; j < 3; j++) {
if (i === 2 && j === 1) {
break outerloop;
}
console.log('i = ' + i + ', j = ' + j);
}
}
上記の例では、outerloopとinnerloopというラベルを使用しています。break outerloop;は、内側のループを外側のループ全体から抜け出すために使用されます。
以下の例では、2つの配列を持つ多重ループを使用し、各要素の組み合わせを出力します。
var array1 = [1, 2, 3];
var array2 = ['a', 'b', 'c'];
outerloop: for (var i = 0; i < array1.length; i++) {
innerloop: for (var j = 0; j < array2.length; j++) {
console.log(array1[i] + ' - ' + array2[j]);
}
}
この例では、outerloopが外側のループを表し、innerloopが内側のループを表しています。これにより、各配列の要素の組み合わせが順番に表示されます。
まとめ
今回のような、特定の条件を満たしたらネストしたループを抜けるケースの実装は、開発の現場において、それほど多くはないかもしれません。しかし、頭の片隅に置いておけば、きっとあなたの役に立つことでしょう。
PR
弊社では一緒に働く仲間を募集しています!
ご興味を持っていただいた方は以下のリンクからぜひお問い合わせください。
https://www.wantedly.com/companies/company_1847744/projects