一、原生方法支持

1、普通for循环

for(j = 0; j < arr.length; j++) {
}

说明:性能很高,但是仍可以优化。

2、优化版for循环【推荐】

for(j = 0,len=arr.length; j < len; j++) {
}

说明:性能最高,使用临时变量,将长度缓存起来,避免重复获取数组长度,数组长度越大时优化效果越明显。

3、弱化版for循环

for(j = 0; arr[j]!=null; j++) {
}

说明:严格上也属于for循环,只不过是没有使用length判断,而使用变量本身判断。

4、foreach循环

arr.forEach(function(value,index,array){//value:当前项  index:索引  array:原始数组
});

说明:

  在IE6-8下都不兼容。

  数组中有几项,那么传递进去的匿名回调函数就需要执行几次;

  理论上这个方法是没有返回值的,仅仅是遍历数组中的每一项,不对原来数组进行修改;但是可以自己通过数组的索引来修改原来的数组;

示例:

var arr = [12,23,24,42,1];
var res = arr.forEach(function (item,index,input) {
input[index] = item*10;
})
console.log(res);//-->undefined;
console.log(ary);//-->[120,230,240,420,10]; 通过数组索引改变了原数组

5、foreach变种

Array.prototype.forEach.call(arr,function(el){
});

说明:在IE6-8下都不兼容。

6、forin循环

for(j in arr) {
}

说明:效率最低。

7、map遍历

arr.map(function(value,index,array){//value:当前项  index:索引  array:原始数组
});

说明:效率低,比不上foreach

区别:map的回调函数中支持return返回值;return的是什么,相当于把数组中的这一项变为什么(并不影响原来的数组,只是相当于把原数组克隆一份,把克隆的这一份的数组中的对应项改变了);

示例:

var arr = [12,23,24,42,1];
var res = arr.map(function (item,index,input) {
return item*10;
})
console.log(res);//-->[120,230,240,420,10]; 原数组拷贝了一份,并进行了修改
console.log(ary);//-->[12,23,24,42,1]; 原数组并未发生变化

8、forof遍历(需要ES6支持)

for(let value of arr) {
});

说明:是es6里面用到的,性能要好于forin,但仍然比不上普通for循环。

一般意义上的效率:优化版for循环>普通for循环>弱化版for循环>……>forin循环|foreach变种

二、Jquery方法

1、$.each()方法 【推荐】

$.each(array,function(index,value){
})

示例:

var arr = [12,23,24,42,1];
$.each(arr, function (index,item) {
console.log(index) // 0 1 2 3 4
console.log(item) // 12 23 24 42 1
})

2、$().each()方法

在dom处理上用的比较多,如果一个html页面上面有多个checkbox,这时用$().each来处理checkbox

示例

$("input[type='checkbox']").each(function(index,item){
$(this).attr("checked",true);
});

js-jquery-数组遍历的更多相关文章

  1. js,jQuery数组常用操作小结

    一.js中数组常用操作小结 (1) shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift() ...

  2. js中数组遍历常用的方法

    常见的数组遍历方法,比如 for in,for  of, forEach,map,filter,every,some,find,reduce等 1,普通for循环,经常用的数组遍历 var arr = ...

  3. js中数组遍历for与for in区别(强烈建议不要使用for in遍历数组)

    js中遍历数组的有两种方式 var array=['a'] //标准的for循环 for(var i=1;i<array.length;i++){ alert(array[i]) } //for ...

  4. js jquery数组去重

    数组去重建议直接使用jquery的 $.unique(arr);方法,此外比较好的方法是本文中的unique3方法比较快用了一个hash表,就是所谓的空间换时间.本文还提供了很多其他写法,都是大同小异 ...

  5. js jquery 数组的合并 对象的合并

    转载自:http://www.cnblogs.com/xingxiangyi/p/6416468.html 1 数组合并 1.1 concat 方法 1 2 3 4 var a=[1,2,3],b=[ ...

  6. 浅谈JS的数组遍历方法

    用过Underscore的朋友都知道,它对数组(集合)的遍历有着非常完善的API可以调用的,_.each()就是其中一个.下面就是一个简单的例子: var arr = [1, 2, 3, 4, 5]; ...

  7. js & jquery数组介绍

    (转自:http://www.jb51.net/article/30793.htm) 1.数组的创建 var arr=new Array(); 2.查找数组中的元素 for(var i=0;i< ...

  8. js中数组遍历的几种方法及其区别

    参考网站: http://www.cnblogs.com/lvmh/p/6104397.html 第一种最常用的:for循环 for(j = 0; j < arr.length; j++) { ...

  9. JQuery数组遍历 - $.each(),$().each()和forEach()

  10. JS Jquery去除数组重复元素

    js jquery去除数组中的重复元素 第一种:$.unique() 第二种: for(var i = 0,len = totalArray_line.length;i < len;i++) { ...

随机推荐

  1. iOS使用TFHpple解析html

    iOS 开发中解析html 网上有很多写好的解析框架 今天就来讲一下如何用框架TFHpple来解析html 使用TFHpple解析html github地址:https://github.com/to ...

  2. shell 脚本调试

    1.第一行加 -xv #!/bin/bash –xv 2. bash -x shellName 3.如果只想调试其中几行脚本的话可以用 set -x 和 set +x 把要调试的部分包含进来: 比如: ...

  3. vue - 父组件数据变化控制子组件类名切换

    先说当时的思路和实现核心是父子组件传值和v-bind指令动态绑定class实现 1. 父组件引用.注册.调用子组件script中引用 import child from '../components/ ...

  4. LeetCode 80 Remove Duplicates from Sorted Array II(移除数组中出现两次以上的元素)

    题目链接:https://leetcode.com/problems/remove-duplicates-from-sorted-array-ii/#/description 给定一个已经排好序的数组 ...

  5. ubuntu下文件压缩/解压缩

    ubuntu下文件压缩/解压缩 http://blog.csdn.net/luo86106/article/details/6946255 .gz 解压1:gunzip FileName.gz 解压2 ...

  6. 调用office COM出现不会退出的问题

    症状 在使用.net调用 Microsoft Office 应用程序时,Office 应用程序在调用Quit方法时不会退出. 原因 Visual Studio.NET 从托管代码调用 COM 对象时, ...

  7. [图书] C++

    作者 书名 Bjarne Stroustrup    The Design and Evolution of C++Stanley B. Lippman    C++ PrimerStanley B. ...

  8. ToStringBuilder类

    文章来源:http://blog.csdn.net/zhaowen25/article/details/39521899 apache的commons-lang3的工具包里有一个ToStringBui ...

  9. Django---项目如何创建

    首先是安装好Django,找到 Scripts 目录配置环境变量: 只要添加到环境变量,在任何目录执行 django-admin startproject mysite 就可以创建 Django 程序 ...

  10. 【问题收录】Ubuntu14.04连接两个双显示器失败的解决方案

    https://blog.csdn.net/chichoxian/article/details/60642533