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

测试如下:


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容