关于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] ;

浙公网安备 33010602011771号