JS的迭代方法

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!!!函数的返回值!!!