JavaScript中遍历数组的方式:forEach 、 for、map

效率方面经过我的测试,for高于另外两个方法。总体排序:

for > forEach > map

效率测试代码:

var arr = [],
  max = 1000;
for (var i = 1; arr.push(i++) < max;);

var mapArr = [],forEachArr = [],forArr = [];

console.time('map');
arr.map(function (val) {
  mapArr.push(val);
})
console.timeEnd('map');

console.time('forEach');
arr.forEach(function (val) {
  forEachArr.push(val);
})
console.timeEnd('forEach');

console.time('for');
for (var i = 0; i < arr.length; i++) {
  forArr.push(arr[i]);
}
console.timeEnd('for');
执行了四次,结果分别为:




forEach是ES5中操作数组的一种方法,主要功能是遍历数组,例如:

var arr = [1,2,3,4];
arr.forEach(alert);

 等价于:

var arr = [1, 2, 3, 4];
for (var k = 0, length = arr.length; k < length; k++) {
 alert(array[k]);
}

forEach方法中的function回调有三个参数:第一个参数是遍历的数组内容,第二个参数是对应的数组索引,第三个参数是数组本身

[].forEach(function(value,index,array){
 
    //code something
 
  });

等价于:

$.each([],function(index,value,array){
 
   //code something
 
 })

写一个例子;

var arr = [1,2,3,4];
arr.forEach(function(value,index,array){
    array[index] == value;    //结果为true
    sum+=value;  
    });
console.log(sum);    //结果为 10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值