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);
});
- 通过抛出异常的方式跳出整个循环
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不起作用。