天天看点

js中every、filter、forEach、map和some迭代法 — 第5.2.8节

ECMAscript 5给数组定义了5个迭代法,每个方法都接收两个参数: 1:每一项运行的函数;2:运行该函数的作用域对象(可选);

1. every()和some()方法;

every();对数组都运行里面的函数,如果每一项都符合,则返回true;

some();如果符合一项就返回true;

var number = [,,,,,,,];
function test1(item,index,array){
    console.log('item=' + item + 'index=' + index + 'array=' + array)
    return item > ;
}
//该函数对每一项都返回true,那么返回true
var everyResult = number.every(test1);
//该函数对任一项都返回true,那么返回true
var someResult = number.some(test1);
console.log(everyResult);
console.log(someResult);
           

2.filter()方法

filter();返回符合里面函数的数组;

var number = [,,,,,,,];
function test1(item,index,arry){
    return item>;
}
//filterRes返回所有复合条件的数据,返回值为数组
var filterRes = number.filter(test1);
console.log(filterRes); //[ 3, 4, 5, 6, 7 ]
           

3.foreach()方法

foreach();对每一项都执行里面的函数,相当于for;没有返回值;

var number = [,,,,,,,];
function test1(item,index,array){
    console.log('item=' + item + 'index=' + index + 'array=' + array)
}
//forEach和for的性质差不多
number.forEach(test1);
           

4.map();返回一个数组,而且该数组的每一项都是运行里面函数的结果;

继续阅读