关于Javascript迭代器方法

一、不生成新数组的迭代器方法


 1、forEach() //该方法接受一个函数为参数,对数组中的每个元素使用该函数。

var ary = [1,2,3,4,5,6,7,8,9];

ary.forEach((item)=>{
        console.log(“元素:”,item);
})

输出为:1 2 3 4 5...

2、every() //该方法接受一个返回值为布尔值的函数,对数组中的每一个元素使用该函数。

var ary = [2,4,6,8,10];
var even = ary.every((item)=>{
    return item % 2 == 0;
});

console.log(even); //true

如果对于所有的元素,该函数返回true ,则该方法返回true。

将数组改为以下:

var ary = [1,2,4,6,8,10];
输出为
console.log(even);
//false

3、some() //该方法接受一个返回值为布尔值类型的函数,只要有一个元素使得该函数返回true,则该方法返回true。

var ary = [1,2,3,4,5,6,7,8,9];

var someEven = ary.some((item)=>{
    return item %2 == 0;
}) 

console.log(someEven); //true

4、reduce() //该方法接受一个函数,返回一个值。该方法会从一个累加值开始,不断对累加值和数组中的后续元素调用该函数,直到数组中的最后一个元素。最后返回这个累加值。

var ary = [1,2,3,4,5,6,7,8,9,10];

var add = ary.reduce((newItem,currentItem)=>{
    return newItem + currentItem;
});

console.log(add); //45
执行过程 console.log(newItem,currentItem):
1 2
3 3
6 4
10 5
15 6
21 7 
28 8 
36 9

5、reduceRight() //该方法与reduce()不同,它是从右到左执行。 

二、生成新数组的迭代器方法


 1、map() //该方法接受一个函数,返回一个新的数组。该方法与forEach()方法类似,对数组中的每一个元素使用某个函数。区别就是map()会返回一个新的数组,该数组的元素是对原有数组每个元素应用函数得到的结果。

var ary = [1,2,3,4,5,6,7,8,9];

var newAry = ary.map((item)=>{
    return item += 5;
});

console.log(newAry); //[6,7,8,9,10,11,12,13,14]; 

2、filter() //该方法与every方法类似。传入一个返回值为布尔值的函数。和every不同的是,当对数组中所有元素使用该函数,结果均为true时,该方法不返回true。而是返回一个新数组,新数组包含应用该函数后结果为true的元素。

var ary = [1,2,3,4,5,6,7,8,9,10,11,12];

var newAry = ary.filter((item)=>{
    return item % 2 == 0;
});

console.log(newAry); //[2,4,6,8,10,12] ;

 

posted @ 2017-10-17 18:00  X·Man  阅读(277)  评论(0)    收藏  举报