迭代方法替代for循环

一、Map
对数组中的每一项运动给定函数,返回每次函数调用的结果组成数组。

let arr=[1,2,3,4,5,6];
/*item为当前遍历到的项,和arr[i]一样*/
arr=arr.map(item=>{return item*2});
//[2,4,6,8,10]

二、filter
对数组中的每一项运动给定函数,返回函数会返回true的项组成的数组—-过滤。

let arr=[1,2,3,2,1];
let newArr = arr.filter((item,index,self)=>{
    return self.indexOf(item)==index;
});
//这里的self指的是数组本身
console.log(newArr);//[1,2,3]

三、Every和Some
every:给数组的每一项运行给定函数,如果该函数对每一项都返回true,则返回true

Some:给数组的每一项运行给定函数,如果该函数对其中任意一项返回true,则返回true

var arr = [1,2,3,-3];
var bool = arr.every(item => {return item > 0});
console.log(bool);//false当有一个小于0的时候,返回false

var bool2 = arr.Some(item => {return item < 0});
console.log(bool2);//true当有一个小于0的时候,返回true

四、Reduce
Reduce()每次只能接受两个参数,比如,数字数组求和,字符串数组连接上

let arr=[1,2,3,4];
let sum=arr.reduce((a,b)=>{return a+b});
console.log(sum);//10

五、find和findIndex
find:返回符合条件的数组第一个元素
findIndex:返回符合条件的数组第一个元素的下标

let arr=[11,22,33,44,55];
let first = arr.find(function(val){return val>30}
console.log(first);//33

let arr=[11,22,33,44,55];
let first = arr.findIndex(function(val){return val>30}
console.log(first);//2

猜你喜欢

转载自blog.csdn.net/jiangqing993/article/details/78752980