原文出处:http://www.cnblogs.com/jiebba/p/6514067.html
1. [...].some(ck)函数 ---- 某个一个为true,则为true
对数组中每个元素执行一次ck函数,知道某个元素返回true,则直接返回true。如果都返回false,则返回false
检查整个数组中是否有满足ck函数的元素。
1
2
|
var result
= [1,5,3,6].some( (v,i) => (v>10) ) //所有元素都不满足,返回result
= false var result
= [10,5,30,60].some( (v,i) => (v<10) ) //有一个(多个)满足,返回result
= true |
2.[...].foreach(ck)函数 ---- 循环而已
每个数组元素都执行一次ck函数,foreach函数无法用break跳出
1
2
|
[50,
25, 49].forEach( (v,i) => console.log(v) ); //50
25 49 |
3.[...].map(ck)函数 ---- 返回每个元素返回值的集合
每个数组元素都执行一次ck函数,最后返回每次元素执行ck函数后返回值的集合(数组)
1
|
var newArray
= [50,30,40].map( (v,i) => v/10 ) //每个元素除以10,最后返回一个新数组
newArray = [5,3,4] |
4.[...].filter(ck)函数 ---- 得到返回值为true的元素的集合
每个数组元素都执行一次ck函数,最后返回每次元素执行ck函数后返回值的为true的元素集合(数组)
1
|
var newArray
= [50,2,60,4,53,15].filter( (v,i) => (v>10) ) //返回数组中大于10的元素新数组
newArray = [50,60,53,15] |
5.[...].every(ck)函数 ---- 某一个为false,则返回false
每个数组元素都执行一次ck函数,直到某个元素执行函数ck返回false,则直接返回false,如果全部返回true,则返回true
1
2
3
4
|
var result
= [5,50,35,12,85].every( (v,i) => v<51 ) //返回有一个(多个)大于等于51,则返回
result = false var result
= [5,50,35,12,85].every( (v,i) => v<100 ) //全部大于51,则返回
result = true |
6.[...].reduce(ck,init) ---- 依次执行ck(prv.next)
数组依次执行ck函数。
1
2
|
var result
= [0,1,2,3] restult.reduce((a,b)=>
a+b,0) //
返回 6 |