Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

"break label"構文でループから任意のタイミングで抜ける

"break label"構文はforやwhileといったループから抜ける事ができる書式です。
悪名高きgoto文そのものの記法ですが、ネストしたループから特定条件で離脱したい場合などには
かえってシンプルに書くことができたりします。
使いドコロを理解していれば、それほど忌み嫌うものでもありません。

実際のところ

以下の例では、渡したデータにnullが入っていた場合、エラーを出力して離脱してみました。

var z = [[1,null,3],[4,5,6,7,8]];
labelCancelLoops: for (var i = 0, mainlen = z.length; i < mainlen; i++) {
  console.log("************");
  for(var j = 0, sublen = z[i].length; j < sublen; j++) {
    if (!z[i][j]) {console.log("BAD CASE"); break labelCancelLoops;}
    console.log("value: " + z[i][j]);
  }
}

/*
************
value: 1
BAD CASE
*/