js:$each、forEach、for 和 return

$.each  jq提供的遍历方法:

$each 跳出循环 return false、跳过循环 return true 。测试如下:


备注:let arr1 = [1,34,4,555,337,77]

forEach es5提供的方法:

forEach 跳出循环:没有(可利用try catch 的hack方法变相实现)、跳过循环 return 任意 。测试如下:

备注:在$each、forEach中使用break continue 会报错。

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权威指南》

测试如下:


你可能感兴趣的:(js:$each、forEach、for 和 return)