javascript 跳出(终止)forEach循环
报错信息:

1.错误用法一
原生态的forEach()方法体中,结束循环不能使用break。
var array = ["first","second","third","fourth"]; // 直接就报错了
array.forEach(function(item,index){
if (item == "third") {
break;
}
alert(item);
});
2.错误用法二
从网上说使用return false,然并卵
var array = ["first","second","third","fourth"]; // 会遍历数组所有元素,只是执行到第3次师,return false下面的代码不再执行而已
array.forEach(function(item,index){
if (item == "third") {
return false;
}
alert(item);// first,second
});
说明:
forEach()无法在所有元素都传递给调用的函数之前终止遍历,
return false 在这里起的作用是:只是终止本次继续执行,而不是终止for循环。
3.正确做法
因为forEach()无法通过正常流程终止,所以可以通过抛出异常的方式实现终止
try {
var array = ["first","second","third","fourth"];
// 执行到第3次,结束循环
array.forEach(function(item,index){
if (item == "third") {
throw new Error("EndIterative");
}
alert(item);// first,sencond
});
} catch(e) {
if(e.message!="EndIterative") throw e;
};
// 下面的代码不影响继续执行
alert(10);
4.结束for循环,使用break
// 终止for循环,使用break
for (var i=0; i < 3; i++) {
if (1==i) {
break;
}
alert(i);//
}
2020/04/20
终止jQuery循环使用return false

相关推荐:
javascript 跳出(终止)forEach循环的更多相关文章
- js 终止 forEach 循环
1.因为 forEach() 无法通过正常流程终止,所以可以通过抛出异常的方式实现终止. try{ var array = ["first","second", ...
- JSTL跳出<c:forEach>循环
<c:forEach items="${consultPager.dataList }" var="consult"> <tr> < ...
- JavaScript数组forEach循环
JavaScript数组forEach循环 今天写JavaScript代码把forEach循环数组忘记写法了,在此记录一下以防止未来忘记. let a = [1, 2, 3]; a.forEach(f ...
- foreach循环的跳出
由于foreach循环中不像for循环可以直接通过return或break来终止当前循环,不过这里可以借助try...catch...来完成var arr = [1,2,3,4,5,6,7,8,9,1 ...
- JavaScript的map循环、forEach循环、filter循环、reduce循环、reduceRight循环
1.map循环 let arr=[1,2,3,4]; arr.map(function(value,key,arr){ //值,索引,数组(默认为选定数组) return item; //如果没有re ...
- java 流程执行 循环 foreach循环
一. if分支 1. 结构 if else if else 2.执行原则 if if if 结构 会一直去执行()里的判断语句 if else if else if 结构 只要一条( ...
- 深入了解 JavaScript 中的 for 循环
在ECMAScript5(简称 ES5)中,有三种 for 循环,分别是: 简单for循环 for-in forEach 在2015年6月份发布的ECMAScript6(简称 ES6)中,新增了一种循 ...
- foreach循环 Java
第一次遇到foreach循环,是在PHP的数组中,同样,在Java数组中,也遇到了foreach循环,都是用来遍历数组(集合).遍历数组,首先想到的一般都是用while,do while,for循环, ...
- JavaScript 中 for in 循环和数组的问题
本文由 伯乐在线 - ElvisKang 翻译,进林 校稿.未经许可,禁止转载!英文出处:adripofjavascript.com.欢迎加入翻译小组. JavaScript的for…in循环用于迭代 ...
随机推荐
- XDM、GDM和KDM
XDM.GDM.KDM是三种X Window的显示管理器 (1)XDM(默认的X Window System Display Manager)(2)GDM(gnome提供的Display Manage ...
- 用最简单的例子理解观察者模式(Observer Pattern)
假设有一个软件公司,每当有新产品推出,就把信息通知到一些客户. 把通知这个动作抽象成一个接口. public interface IService { void Notif(); } 客户如果想获得通 ...
- andriod studio 获得程序名
getResources().getString(R.string.app_name)
- Android SDK目录及版本号区别
来自:http://www.2cto.com/kf/201604/496917.html 今天又有人问Tools,Build-Tools,Platform-tools有什么区别,是干嘛的? 现在对SD ...
- Java HMAC-SHA1加密算法的实现
public static String hamcsha1(byte[] data, byte[] key) { try { SecretKeySpec signingKey = new Secret ...
- 算法:非平衡二叉搜索树(UnBalanced Binary Search Tree)
背景 很多场景下都需要将元素存储到已排序的集合中.用数组来存储,搜索效率非常高: O(log n),但是插入效率比较低:O(n).用链表来存储,插入效率和搜索效率都比较低:O(n).如何能提供插入和搜 ...
- Selenium2+python自动化60-异常后截图(screenshot)
前言 在执行用例过程中由于是无人值守的,用例运行报错的时候,我们希望能对当前屏幕截图,留下证据. 在写用例的时候,最后一步是断言,可以把截图的动作放在断言这里,那么如何在断言失败后截图呢? 一.截图方 ...
- JDBC连接oracle RAC数据库配置
RAC的配置如下: node1:ip地址192.168.60.132,实例名:rac1,主机名:rac1 node2:ip地址192.168.60.144,实例名:rac2,主机名:rac2 RAC服 ...
- 第一章 关于html适应手机屏幕的写法
在网页的中增加以上这句话,可以让网页的宽度自动适应手机屏幕的宽度: <meta name="viewport" content="width=device-widt ...
- hue耗流量优化
ps: 使用的hue版本为 hue-3.10.0 一.[jobbrowser刷流量] 基本一分钟刷新一次,执行GET /jobbrowser/ [17/Apr/2017 14:46:26 +0800] ...