forEach、for、$.each()跳出循环比较
无论工作上或是学习上,用过的知识点总是容易忘记,于是略作记录,方便你我他。
说起跳出循环,第一时间想起的是 break \ continue,这是经典的for循环。
1、for 循环
先上例子,思考输出结果,体会 break 与 continue 的不同。
1 var arr = [1,2,3,4,5,6]
2 var arrySpecial = new Array();
3 for (var i = 0; i < arr.length; i++){
4 if(arr[i]%2==0)
5 {
6 arrySpecial.push(arr[i]);
7 continue;
8 }
9 if(arr[i]%3==0)
10 {
11 arrySpecial.push(arr[i]);
12 break;
13 }
14 }
15
16 console.log(arrySpecial);
continue 结束本次循环,继续执行循环体; break 结束所有循环。在本例中当“2”满足条件后,继续进行下一轮判断,当’3‘满足条件后,break 结束所有循环。
2、forEach
这是ECMAScript 5数组的forEach方法 ,作用是遍历数组,常用的写法:
案例分析:
var arr = [1,2,3,4,5,6]
var arrySpecial = new Array();
arr.forEach(function(e,i){
if(e%2==0)
{
arrySpecial.push(e);
return;
}
if(e%3==0)
{
arrySpecial.push(e);
return;
}
})
console.log(arrySpecial);
在forEach中,不能使用 continue 和 break ,可以使用 return 或 return false 跳出循环,效果与 for 中 continue 一样。注意该方法无法一次结束所有循环,需要一次性结束所有循环,还是老老实实使用for方法。
3、$.each()
这是jQuery的方法,用于遍历 DOM时很方便,偷懒必备。
在该方法中,同样是使用 return 或 return false 跳出循环,效果类似 效果与 for 中 break,结束所有循环。有兴趣的同学亲自动手尝试下。
对于跳出循环的方法比较, for方法是可以满足各种场景,但我们也得跟上时代的潮流,在合理的场景下,推荐使用forEach 方法。
个人见解,难免有错漏,望不吝赐教
forEach、for、$.each()跳出循环比较的更多相关文章
- 【JSP JSTL】<c:if>多个判断条件 + <c:foreach>满足条件跳出循环
有一个需求,将所拥有的权限存放于session中,现在JSP页面判断这些如果在所有权限中有某一个或者某几个,就显示相对应的页面内容 举一个例子,实现以上的逻辑,<c:if>多个判断条件 + ...
- forEach方法如何跳出循环
1.for方法跳出循环 function getItemById(arr, id) { var item = null; for (var i = 0; i < arr.length; i++) ...
- js forEach跳出循环
假设当我们只需知道某个数组有没有某个属性,如果找到了直接跳出循环,省略掉剩下的循环步骤是较优化的操作,但是for中是可以利用break跳出循环,但break在forEach中无效,那么forEach能 ...
- JavaScript数组forEach()、map()、reduce()方法
1. js 数组循环遍历. 数组循环变量,最先想到的就是 for(var i=0;i<count;i++)这样的方式了. 除此之外,也可以使用较简便的forEach 方式 2. forEac ...
- JavaScript数组循环遍历之forEach
1. js 数组循环遍历. 数组循环变量,最先想到的就是 for(var i=0;i<count;i++)这样的方式了. 除此之外,也可以使用较简便的forEach 方式 2. forEac ...
- forEach的使用方法
[-] 1 js 数组循环遍历 2 forEach 函数 3 让IE兼容forEach方法 4 如何跳出循环 1. js 数组循环遍历. 数组循环变量,最先想到的就是 for(var i= ...
- js forEach参数详解,forEach与for循环区别,forEach中如何删除数组元素
壹 ❀ 引 在JS开发工作中,遍历数组的操作可谓十分常见了,那么像for循环,forEach此类方法自然也不会陌生,我个人也觉得forEach不值得写一篇博客记录,直到我遇到了一个有趣的问题,我们来 ...
- for...in、for...of和forEach
let arr = [1,2,3,4,5,6]; arr.name="AAA"; for(var i in arr){ //遍历的实际是对象的属性名臣,每一个元素的索引被视为一个属 ...
- ES6读书笔记(三)
前言 前段时间整理了ES6的读书笔记:<ES6读书笔记(一)>,<ES6读书笔记(二)>,现在为第三篇,本篇内容包括: 一.Promise 二.Iterator和for of循 ...
- B5:责任链模式 Chain Of Responsibility
使多个对象都有机会处理处理请求,从而避免请求的发送者和接受者之间的耦合关系.将这个对象连成一条链,并沿着该链处理请求,直到有一个对象能够处理它为止. 相当于switch/case,在客户端指定了每一链 ...
随机推荐
- Python 学习 第七篇:函数1(定义、调用和变量的作用域)
函数是把一些语句集合在一起的程序结构,用于把复杂的流程细分成不同的组件,能够减少代码的冗余.代码的复用和修改代码的代价. 函数可以0个.1个或多个参数,向函数传递参数,可以控制函数的流程.函数还可以返 ...
- .Net架构篇:思考如何设计一款实用的分布式监控系统?
前言 无论从最早期的unix操作系统,还是曾经大行其道的单体式应用,还是现在日益流行的微服务架构,始终都离不开监控的身影.如windows的任务管理器,linux的top命令,都可以看作是监控的面板. ...
- .net core实践系列之短信服务-Sikiro.SMS.Api服务的实现
前言 上篇<.net core实践系列之短信服务-架构设计>介绍了我对短信服务的架构设计,同时针对场景解析了我的设计理念.本篇继续讲解Api服务的实现过程. 源码地址:https://gi ...
- Fedora 19关闭防火墙
关闭防火墙systemctl stop firewalld.service 关闭开机启动防火墙systemctl disable firewalld.service
- restfull环境搭建-helloword(三)
原文地址:http://only81.iteye.com/blog/1689537 This section creates a CRUD (Create, Read, Update, Delete) ...
- python-小知识点-14
''' python2 python3 ''' #python2 print() print 'abc' range() xrange() 生成器 raw_input() #python3 print ...
- M1/M2项目阶段总结
1.M1/M2总结 我们这学期完成了学霸项目. 在M1阶段,我们首先进行了分工,完成了一个系统的计划,然后是对学长代码的移植和优化.在优化代码的过程中,我们遇到了不少问题,比如一些代码的冗余以及指向性 ...
- BugPhobia休息篇章:Beta阶段第IX次Scrum Meeting前奏
特别说明:此次Scrum Meeting不计入正式的Scrum Meeting,因此此次工作仅为第IX次Scrum Meeting的前奏,而笔者也首次采用休息篇章作为子命题 0x01 :Scrum ...
- 第三个Sprint冲刺第六天(燃尽图)
- [BUAA_SE_2017]个人项目-Sudoku
个人项目作业-数独 Github项目地址 时间预估 PSP2.1 Personal Software Process Stages 预估时间(分钟) 实际耗时(分钟) Planning 计划 60 · ...