forEach终止循环
谬误用法一
:应用break(会报错
)
var array = ["第一","第二","第三","第四"];
// 间接就报错了
array.forEach(function(item,index){
if (item == "第三") {
break;
}
alert(item);
});
谬误用法二
:应用return false(会跳过以后项,持续循环
)
相当于for 循环中的continue
var array = ["第一","第二","第三","第四"];
// 会遍历数组所有元素,只是执行跳过"第三",return false上面的代码不再执行而已
array.forEach(function(item,index){
if (item == "第三") {
return false;
}
console.log(item);// "第一" "第二" "第四"
});
console.log("以下代码")// 以下代码
正确用法:使用try catch(抛出异样
)
try {
var array = ["第一","第二","第三","第四"];
// 执行到第3次,完结循环
array.forEach(function(item,index){
if (item == "第三") {
throw new Error("第三");
}
console.log(item);// 第一 第二
});
} catch(e) {
if(e.message!="第三") throw e;
};
// 上面的代码不影响继续执行
console.log("下方代码");//下方代码
参考原文
发表回复