javascript 跳出(終止)forEach循環


報錯信息:

1.錯誤用法一

  原生態的forEach()方法體中,結束循環不能使用break。

var array = ["first","second","third","fourth"];
        
// 直接就報錯了
array.forEach(function(item,index){
    if (item == "third") {
        break;
    }
    alert(item);
});

2.錯誤用法二 

  從網上說使用return false,然並卵

var array = ["first","second","third","fourth"];
        
// 會遍歷數組所有元素,只是執行到第3次師,return false下面的代碼不再執行而已
array.forEach(function(item,index){
    if (item == "third") {
        return false;
    }
    alert(item);// first,second
});

  說明:

  forEach()無法在所有元素都傳遞給調用的函數之前終止遍歷,

  return false 在這里起的作用是:只是終止本次繼續執行,而不是終止for循環。

3.正確做法

  因為forEach()無法通過正常流程終止,所以可以通過拋出異常的方式實現終止  

try {
    var array = ["first","second","third","fourth"];
    
    // 執行到第3次,結束循環
    array.forEach(function(item,index){
        if (item == "third") {
            throw new Error("EndIterative");
        }
        alert(item);// first,sencond
    });
} catch(e) {
    if(e.message!="EndIterative") throw e;
};
// 下面的代碼不影響繼續執行
alert(10);

4.結束for循環,使用break

// 終止for循環,使用break
for (var i=0; i < 3; i++) {
    if (1==i) {
        break;
    }
    alert(i);//0
}

2020/04/20

終止jQuery循環使用return false

 

 相關推薦:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM