你的位置:首页 > Java教程

[Java教程]javascript数组浅谈3


前两节说了数组最基本的创建,队列方法,排序和一些操作方法,这节说说迭代和归并方法。

    every()方法 & some()方法

这两个方法会对数组中的每一项运行给定函数,然后返回一个布尔值,理解起来可以当成everyone和someone的区别来理解,看个例子就好了:

var arr=[1,2,3,4,5];var everyResult=arr.every(function(item,index,arr){   return (item>2);   })    //falsevar someResult=arr.some(function(item,index,arr){    return (item>2);   })    //true

两个方法都执行一个函数,函数的第一个参数表示迭代的每个数组元素,第二个参数表示下标,第三个参数表示该数组。

    filter()方法

1 var arr=[1,2,3,4,5]2 var filterResult=arr.filter(function(item,index,arr){3    return (item>2)4 })  //[3,4,5]

 

该方法对数组中每一项执行给定函数,返回该函数会返回true的项所组成的数组。

    map()方法 & forEach()方法

map()返回每次函数调用的结果组成的数组,forEach()则没有返回值。

1 var arr=[1,2,3,4,5]2 var mapResult=arr.map(function(item,index,arr){3    return item*24 })  //[2,4,6,8,10]5 var forResult=arr.forEach(function(item,index,arr){6    //可执行一些操作7 })  //undefined

forEach()本质上与使用for循环迭代数组一样。

 

    reduce()方法 & reduceRight()方法

1 var arr=[1,2,3];2 arr.reduce(function(x,y,index,arr){3 4    return x+y5 },0);  //6

 

这两个方法都有两个参数,第一个是一个要执行的回调函数,第二个表示要作为归并基础的初始值(可选)。

    indexOf()方法 & lastIndexOf()

1 var arr=[1,2,3,4,5];2 arr.indexOf(1,-1);  //-13 arr.lastIndexOf(1,-1)  //0

 

接收两个参数,第一个表示要查找的元素,第二个表示开始位置,如果有则返回该元素在该数组中的位置下标,没有则返回-1

 

 

    数组大概就总结这么多,同时数组也是对象,以后会在对象的学习总结中再来探讨。