$.each jq提供的遍历方法:
$each 跳出循环 return false、跳过循环 return true 。测试如下:
forEach es5提供的方法:
forEach 跳出循环:没有(可利用try catch 的hack方法变相实现)、跳过循环 return 任意 。测试如下:
for:js提供的:
for 跳出循环: break 、跳过循环:continue 。测试如下:
拓展:forEach()无法在所有元素都传递给调用的函数之前终止遍历。也就是说,没有像for循环中使用的相应的break语句。如果要提前终止,必须把forEach()方法放在一个try块中,并能抛出一个异常。如果forEach()调用的函数抛出foreach.break异常,循环会提前终止:
function foreach(a,f,t){
try { a.forEach(f,t); }
catch(e){
if(e === foreach.break)return;
else throw e;
}
}
foreach.break = new Error("StopIteration");
摘自《javascript权威指南》
测试如下: