chaihongjun.me

JavaScript数组迭代方法总结

javascript数组有6种迭代方法,都是对数组项进行处理,但是返回的结果可以分为几种。

JavaScript数组迭代方法总结

1.返回布尔值的every和some

从这两个迭代方法的名称可以看出来大致的作用.

var arr=[1,2,3,4,5];
var newarr=arr.every(function(item,index){ //检测数组项是不是都是符合条件的
    return item>0;
});
console.log(newarr) //true
console.log(arr) //[1,2,3,4,5]

every针对数组项内容全部都符合函数条件,则返回true,否则是false

var arr=[1,2,3,4,5];
var newarr=arr.every(function(item,index){ //检测数组项只要有一项满足条件即可
    return item>3;
});
console.log(newarr) //true
console.log(arr) //[1,2,3,4,5]

some针对数组项内容只要有一项符合函数条件,则返回true,否则是false


2.返回新的数组的map,filter

分别从名字可以大致判断,map为映射数组,对数组项做了动作。filter字面意思是过滤器,应该是过滤数组项。

var arr=[1,2,3,4,5];
var newarr=arr.map(function(item,index){ //对数组每项进行处理,最后返回一个新的数组
  return  item*2;
});
console.log(newarr) //[2,4,6,8,10]
console.log(arr) //[1,2,3,4,5]

map映射数组项,对数组项处理并产生新的数组项,新的数组项组合成新的数组


var arr=[1,2,3,4,5];
var newarr=some.map(function(item,index){ //对数组每项进行过滤,排除掉不符合条件的项
  return  item>2;
});
console.log(newarr) //[3,4,5]
console.log(arr) //[1,2,3,4,5]

filter过滤原数组项,将符合条件的数组项组合成新的数组


3. 只是处理原数组forEach

var arr=[1,2,3,4,5];
var newarr=arr.forEach(function(item,index){ //对数组每项进行循环处理,但是不影响原来的数组
 item++;
});
console.log(newarr) // undefined  
console.log(arr) // [1,2,3,4,5]

forEach迭代原数组项(进行一些操作),但不影响原数组,也不返沪新的数组


4.reduce叠加数组,返回叠加之后的结果

var arr=[1,2,3,4,5];
var newarr=arr.reduce(function(prev,next){ //对数组每项进行循环处理,但是不影响原来的数组
 return prev+next;
});
console.log(newarr) // 15  
console.log(arr) // [1,2,3,4,5]

reduce将数组从第一项开始叠加到最后,并且返回叠加之后的结果,但是不影响原数组

知识共享许可协议本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。作者:柴宏俊»