js跳出forEach循环

forEach循环中可使用return false终止本次循环,但不能想for那样使用break来跳出整个循环。
(1) 终止本次循环

var array = ["liy","yang","cong","ming"];   
array.forEach(function(item,index){
    if (item == "cong") {
        return false;
    }
    console.log(item);
});

遍历数组所有元素,执行到第3次时,return false后下面的代码不再执行而已,但还会继续执行第4次循环。
(2) 跳出整个循环

  • 错误用法
var array = ["liy","yang","cong","ming"];   
array.forEach(function(item,index){
    if (item == "cong") {
        break;
    }
    console.log(item);
});
forEach中不能使用break关键字来跳出整个循环.png
  • 通过抛出异常的方式跳出整个循环
try {
    var array = ["liy","yang","cong","ming"];   
    // 执行到第3次,结束循环
    array.forEach(function(item,index){
        if (item == "cong") {
            throw new Error("EndIterative");
        }
        alert(item);
    });
} catch(e) {
    if(e.message!="EndIterative") throw e;
};
// 下面的代码不影响继续执行
console.log("haha");

拓展JS中的 map, some, every, forEach 用法总结,跳出循环 return false break不起作用

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容