javascript数组的一些方法(二)

来源:互联网 发布:今年淘宝双11销售额 编辑:程序博客网 时间:2024/06/05 20:23

一、方法概述:

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]


3、filter()方法:返回的数组元素是调用的数组的一个子集。传递的函数是用来逻辑判定的:该函数返回true和false。

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]


4、every()和some()方法:是数组的逻辑判断:它们对数组元素应用指定函数进行判断,返回true和false。

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





0 0
原创粉丝点击