一、原生方法支持

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. 【LeetCode OJ】Swap Nodes in Pairs

    题目:Given a linked list, swap every two adjacent nodes and return its head. For example,Given 1->2 ...

  2. Bypassing PatchGuard on Windows x64

    [说明] 1.  本文是意译,加之本人英文水平有限.windows底层技术属菜鸟级别,本文与原文存在一定误差,请多包涵. 2.  由于内容较多,从word拷贝过来排版就乱了.故你也可以下载附件. 3. ...

  3. 清理和关闭多余的Windows 7系统服务

    清理和关闭多余的Windows 7系统服务 现在已经有不少配置不是很高的电脑用户正式用上了Windows 7(以下简称Win 7),如何让低配置电脑可以更流畅的运行Win 7呢?虽然部分软件提供了傻瓜 ...

  4. 【云迁移论文笔记】Cloud Migration Research:A Systematic Review

    Cloud Migration Research:A Systematic Review Author Info: Pooyan Jamshidi PhD Postdoctoral Researche ...

  5. jQuery的一些静态方法

    // 该方法被绑定在jQuery对象上,只能通过$.noConflict()调用 noConflict: function( deep ) { // 取消$在window上的绑定,方法是将_$绑定到w ...

  6. 一篇博客搞定redis基础

    redis简介 redis 一款高性能key-value数据库,实际上多用作缓存队列或者消息分发(celery),但是最常常被用来做缓存. redis安装 源码安装 $ wget http://dow ...

  7. 分布式文件系统FastDFS架构剖析

    ps.本文来自于网络 一.什么是FastDfs FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载 ...

  8. Windows Server 2008 R2之一活动目录服务部署

    测试环境: 服务器:计算机名Win2008R2CNDC,已安装Windows Server 2008 R2.IPV4:192.168.1.13,255.255.255.0,网关地址192.168.1. ...

  9. APM飞控的使用心得

    硬件资源:APM,F450四轴机架,大疆电调和电机,富斯i6控和接收机. 刚开始的步骤都是大同小异,首先可以按照这个链接上面的步骤一步步的执行:http://tieba.baidu.com/p/297 ...

  10. 9.6Django

    2018-9-6 12:56:32 2018-9-6 18:32:22 把那个用户列表的页面优化了一下!用了老师更好看的页面,但是功能还是那些! 就是修改一下url就好! 放在我我的github  : ...