1.for循环

 var
arr = [];
for (var i = 0; i < arr.length; i++) {
if (条件1)
return;
if (条件2)
break;
if (条件3)
continue;
};

js最常用的循环必然是for循环,最基础的用法,用于数组遍历,但是代码书写过多。

 var
arr = [];
Array.prototype.customFunc = function () { };
for (var item in arr) {
if (!arr.hasOwnProperty(item)) {
if (条件1)
return;
if (条件2)
break;
if (条件3)
continue;
}
};

var in的形式遍历用于遍历数组并不理想,这个遍历方式是遍历属性的,特殊情况下是可以使用,使用这种遍历方式会将数组本身的属性也遍历出来,比如我们在Array上扩展一个方法customFunc,此时遍遍历数组会将customFunc也遍历出来达不到预期效果,非要用怎么办,加一层判断利用hasOwnProperty方法将数组原型中的属性扣出去,这样遍历就不用担心前面的问题了。

2.ES5遍历方式

var
arr = [];
arr.forEach((item, index) => {
if (条件)
return;
})

forEach是ES5定义的一种遍历方式,这个方法用起来很方便,但是弊端是无法使用break,continue,也就是无法跳出一次循环,只能用return结束整个函数执行,这点就比较尴尬了,如果有跳出循环的逻辑还是用for循环吧。效率上for循环也高于forEach。

3.ES6遍历方式

 var
arr = [];
for (var item of arr) {
if (条件1)
return;
if (条件2)
break;
if (条件3)
continue;
}

ES6的for循环写法。这种方式非常好,弥补了for(var in)的弊端,也弥补了forEach的弊端。而且这种遍历方式还可以对String、Object等等进行遍历。

以上列举了一下常用的遍历方式,在这里mark一下。

关于js中遍历总结的更多相关文章

  1. JS中遍历EL表达式中后台传过来的Java集合

    前言:在我的项目里有这么一个情况,后台直接model.addAttribute()存储了一个对象,此对象内部有一个集合,前端JSP处理的方法正常情况下就是直接使用EL表达式即可.但是如果在JS中需要使 ...

  2. 【微信小程序】--小程序中循环遍历(包括js中遍历和wxml中的遍历)

    文章为博主原创,纯属个人见解,如有错误欢迎指出. 如需转载,请注明出处. 在js中遍历 for (var index in res.data.infos) { res.data.infos[index ...

  3. JS中遍历数组、对象的方式

    1.标准的for循环遍历数组 //不打印自定义属性和继承属性 var array = [1,2,3]; for (var i = 0; i < array.length; i++) { cons ...

  4. js中遍历对象的属性和值的方法

    鉴于循环目标是个对象,length是为undefined,用map等对数组的循环方法不行,对象就用此下方法 for(var key in _this.lists.medicines){ medicin ...

  5. js中遍历对象的属性和值

    今天想看一下js的数组遍历的内容,搜索到了一个关于对象遍历写好的函数,保留一下.以后好用. function allPrpos ( obj ) {   // 用来保存所有的属性名称和值   var p ...

  6. js中遍历出查询后的listmodel(下拉框系列)

    function selectclassname(){ $.ajax({ url:"queryschoolclasslists.action", async:false, data ...

  7. JS中遍历语法的比较

    for循环 JavaScript 提供多种遍历语法.最原始的写法就是for循环.(假设myArray是数组,下面同理) let arr = [1,2,3,4,5]; for (var index = ...

  8. JS中遍历对象属性的四种方法

    Object.keys().Object.values().Object.entries().for...in.Map (1)Object.keys(): let ex1 = {c1: 'white' ...

  9. js中遍历对象(5种)和遍历数组(6种)的方法总结(转载)

    一.遍历对象方法 1.for...in遍历输出的是对象自身的属性以及原型链上可枚举的属性(不含Symbol属性),原型链上的属性最后输出说明先遍历的是自身的可枚举属性,后遍历原型链上的 eg: var ...

随机推荐

  1. ajax 缓存问题及解决方案

      ajax 缓存问题及解决方案 CreationTime--2018年7月25日16点04分 Author:Marydon 1.什么情况下ajax请求会出现缓存? 当请求的路径.参数名.参数值三者都 ...

  2. JDBC 事务(二)回滚到保存点

    public class SavePointTest { /**      * @param args      * @throws SQLException      */     public s ...

  3. CI:模拟进化与遗传算法

     模拟进化计算 (Simulated  Evolutionary Computation)  是近二十年来信息科学.人工智能与计算机科学的一大研究领域,由此所派生的求解优化问题的仿生类算法(遗传算法. ...

  4. Linux命令-权限管理命令:chgrp

    groupadd shuaige 创建一个用户组名字叫shuaige ls -l /home/wangyunpeng/abcd 查看abcd文件的权限 chgrp shuaige /home/wang ...

  5. bash的输出多行和vim的全部选择

    使用cat命令加输出符>来在bash脚本里面输出多行文本是最直观的做法. cat >out.file <<EOF start a line ... ... a line aga ...

  6. i2c 协议解析

    1.基本概念 主机            初始化发送,产生时钟信号和终止发送的器件 从机            被主机寻址的器件 发送器        发送数据到总线的器件 接收器        从总 ...

  7. zoj 1562 反素数 附上个人对反素数性质的证明

    反素数的定义:对于不论什么正整数,其约数个数记为.比如,假设某个正整数满足:对随意的正整 数.都有,那么称为反素数. 从反素数的定义中能够看出两个性质: (1)一个反素数的全部质因子必定是从2開始的连 ...

  8. cxf动态调用webservice设置超时,测试线程安全

    Java代码 import java.util.Random; import java.util.concurrent.ArrayBlockingQueue; import java.util.con ...

  9. 安装CentOS7后,无法联网,用yum安装软件提示 cannot find a valid baseurl for repo:base/7/x86_64 的解决方法

    无法联网的明显表现会有: 1.yum install出现 Error: cannot find a valid baseurl or repo:base 2.ping host会提示unknown h ...

  10. ubuntu和pypi换源

    ubuntu用apt-get下载的源是可以更换的.之前一直是打开软件中心在编辑里找源,找到后系统会自动备份原来的源并换源.奇怪却搜不到自己学校的源=.= 想换源还有一个原因,之前在update的时候会 ...