1. 程式人生 > >Javascript中快速退出多重迴圈的技巧

Javascript中快速退出多重迴圈的技巧

在雙重迴圈或多重迴圈中判斷條件,條件符合時跳出整個巢狀迴圈體是常見的程式邏輯。在Javascript中有哪些跳出的方法呢?樓主簡單整理了一下。

一. 使用多個break語句跳出

var breaked = false;
for (var i = 0; i < 3; i++) {
    for (var j = 0; j < 3; j++) {
        if (i === 1 && j === 1) {
            breaked = true;
            break;
        }
        console.log('i=' + i + ',j=' + j);
    }
    
if (breaked) { break; } }

這是比較常見的跳出方法,雙重迴圈的時候還可以接受,一旦迴圈的次數多了break語句會反覆出現,程式碼閱讀起來並不是很友好。

二. 使用break+label的形式跳出

loop:
for (var i = 0; i < 3; i++) {
    for (var j = 0; j < 3; j++) {
        if (i === 1 && j === 1) {
            break loop;
        }
        console.log('i=' + i + ',j=' + j);
    }
}

Javascript中是不能使用goto語句的,但是label可以和break、continue語句聯合使用。在最外層的迴圈之外打上自定義標籤,並在break時使用,就可以退出最外層迴圈了。當然,label這種組合語言時期的上古遺蹟是不被推薦使用的,在大一的C語言課上老師就教導我們這樣的程式設計習慣會打斷人的結構性思維等等…而且同事閱讀起來也會很彆扭。

三. 使用iife + return

(function () {
    for (var i = 0; i < 3; i++) {
        for (var j = 0; j < 3; j++) {
            
if (i === 1 && j === 1) { return; } console.log('i=' + i + ',j=' + j); } } })();

在迴圈體外包一層函式,想退出就退出,還能return返回值,簡單粗暴,大家都能看明白,簡直不要太好,哈哈