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("下方代码");//下方代码
参考原文