EVERY()
every() 方法用于检测数组所有元素是否都符合指定条件,如果符合条件的话返回true,如果不符合条件就返回false
arr = [1,2,3,4,5]
function check(a){return a>3}
function check2(a){return a>0}
arr.every(check) //false
arr.every(check2) //true
以函数的方式迭代来判断是否符合条件。
FILTER()
用判断条件的方式来筛选符合条件的元素:
arr = [1,2,3,4,5]
function bigger(a){return a>2}
arr.filter(bigger) //[3, 4, 5]
返回的是被筛选后的数组。
FOREACH()
迭代数组,可以在function中传入两个参数,第一个参数是元素本身,第二个参数是元素在数组中的位置:
arr = [1,2,3,4,5]
arr.forEach(function(item,index){console.log(item,index)});
返回值为:
1 0
2 1
3 2
4 3
5 4
返回执行函数后的结果
MAP()
让元素依次执行函数,然后返回新的数组:
arr = [1,2,3,4,5]
arr.map(function(a){return a*a})
[1, 4, 9, 16, 25]
REDUCE()
reduce()必须传入两个参数,函数返回的结果在变为第一个参数与下个元素继续执行函数
就好比:
[x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)
arr = [1,2,3,4,5]
arr.reduce(function(a,b){return a+b});
返回值为 15
reduce的执行函数必须要有返回值,不然就变成了undefined与下一个参数继续执行了。
SOME()
some()就正好与every()相反,她也是一个迭代判断符合条件的函数,当有些元素符合(1+)这个条件时候返回true,只有都不符合条件的时候才会返回false;
arr = [1,2,3,4,5]
function check(a){return a>3}
function check2(a){return a>5}
arr.every(check) //true
arr.every(check2) //false
总结的关键
总之迭代的关键,就是return!!!函数的返回值!!!