在雙重循環或多重循環中判斷條件,條件符合時跳出整個嵌套循環體是常見的程序邏輯。在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語句會反覆出現,代碼閱讀起來並非很友好。oop
二. 使用break+label的形式跳出spa
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語言課上老師就教導咱們這樣的編程習慣會打斷人的結構性思惟等等…並且同事閱讀起來也會很彆扭。code
三. 使用iife + returnblog
(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返回值,簡單粗暴,你們都能看明白,簡直不要太好,哈哈ip