松山事務所の石丸です。
JavaScriptで2重ループをbreakする方法がエレガントだったので思わず記事にしちゃいました。
stack overflow: How to break nested loops in JavaScript?
Gridを構成するセルにバリデーションをかけていってエラーがあったときに抜けたい。
そんなサンプルコードです。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
var grid = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
function validate(value) {
return value !== 5;
}
grid_loop:
for (var row = 0; row < grid.length; row++) {
for (var col = 0; col < grid[row].length; col++) {
var value = grid[row][col];
console.log(value);
if (!validate(value)) {
break grid_loop;
}
}
}
|
ループにラベルを付けておいて、break時にラベルを指定して抜けられます。
gotoがないJavaScriptでどう書こうかダメ元でググって知りました。