一、方法概述:
1、方法第一个参数:A、接受一个函数,
B、 对数组的每个元素调用该函数
C、如果是稀疏数组,对不存在的元素不调用传递的函数。
a、 调用提供的函数使用三个参数:数组元素、元素索引、数组本身。
b、 通常只需要第一个参数值,可以忽略后两个参数
2、方法第二个参数是:A、可选的,如果有第二个参数,则调用的函数被看做是第二个参数的方法。
B、这个参数作为this值关键字的值来使用。
二、方法
1、forEach()方法:从头至尾遍历数组,为每个元素调用指定函数。
var data = [1,2,3,4,5];
var sum = 0;
data.forEach(function(value){sum += value}); //传递的函数作为forEach()的第一个参数。此函数只有一个参数,是方法概述里b的情况.
data.forEach(function(v,i,a){ a[i] = v +1;}); //传递的函数作为forEach()的第一个参数。此函数只有一个参数,是方法概述里a的情况
2、map()方法:将调用的数组的每个元素指定的函数,并返回一个 数组,它包含该函数返回值。它不修改原数组。
a = [1,2,3];
b = a.map(function(x) {return x*x;}); //b:[1,4,9]
a = [5,4,3,2,1];
smallvalues = a.filter(function(x) { return x < 3}); //smallvalues:[2,1]
everyother = a.filter(function(x,i){ return i%2==0 }); //everyother:[5,3,1]
a = [1,2,3,4,5];
a.every(function(x) { return x < 10; }); //只有数组里所有的都满足才返回true。此时返回true。
a.some(function(x) {return x%2===0; }); //数组里存在满足条件的即可返回true。此时返回true。
5、reduce()和reduceRight()方法使用指定的函数将数组元素进行组合,生成单个值。
var a = [1,2,3,4,5];
var sum = a.reduce(function(x,y) {return x+y },0); //sum=15
注释:reduce()需要两个参数,第一个是函数,第二个是初始值,直接赋值给函数的x。
当没有第二个参数的时候,x和y均是数组元素。而不是x是数组元素而y是索引值。
reduceRight(0:它的工作原理和reduce()一样,不同的是它按照从高到低处理数组。
6、indexOf()和lastindexOf()搜索整个数组中具有给定值的元素,返回找到第一个元素的索引或者如果没有找到就返回-1。indexOf从头至尾搜索,而lastindexOf则反向搜索。
a = [0,1,2,1,0];
a.indexOf(1) //1; a[1]是1