在ES6中新增了很多对数组操作的快捷方法,新的方法高效、好用,不用什么都是for循环,代码更加优雅,但是初学的时候有点头大,感觉所有方法都很像,不清楚具体使用的区别在哪,专门总结一下。


#### 1、forEach 没有返回值,只是让数组中的每个元素执行function的操作
let arr = [1,2,3,4,5];
arr.forEach((item,index)=>{
    console.log(item * 2);       //2,4,6,8,10
})

2、find 返回数组中第一个满足条件的元素(查找)

let arr = [1,2,3,4,5];
arr.find((item,index)=>{
    return item > 3;       //4
})

3、map 返回一个新数组,数组中的每个元素为调用function的结果

let arr = [1,2,3,4,5];
arr.map((item,index)=>{
    return item * 2;       //[2,4,6,8,10]
})

4、filter 返回一个符合function条件的元素数组(过滤)

let arr = [1,2,3,4,5];
arr.filter((item,index)=>{
    return item > 3;       //[4,5]
})

5、reduce 让数组中的前项和后项做某种运算,返回累计的最终值

let arr = [1,2,3,4,5];
arr.reduce((prev,next)=>{
    return prev + next;       //15
})

6、every 返回一个Boolean值,判断数组中每一个元素是否符合function的条件

let arr = [1,2,3,4,5];
arr.every((item,index)=>{
    return item > 0;       //true(所有元素都满足才为true)
})

7、some 返回一个Boolean值,判断数组中是否有元素符合function的条件

let arr = [1,2,3,4,5];
arr.some((item,index)=>{
    return item > 4;       //true(只要有一个满足即可)
})