javascript数组浅谈3
前两节说了数组最基本的创建,队列方法,排序和一些操作方法,这节说说迭代和归并方法。
every()方法 & some()方法
这两个方法会对数组中的每一项运行给定函数,然后返回一个布尔值,理解起来可以当成everyone和someone的区别来理解,看个例子就好了:
var arr=[1,2,3,4,5]; var everyResult=arr.every(function(item,index,arr){ return (item>2); }) //false var 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*2 4 }) //[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+y 5 },0); //6
这两个方法都有两个参数,第一个是一个要执行的回调函数,第二个表示要作为归并基础的初始值(可选)。
indexOf()方法 & lastIndexOf()
1 var arr=[1,2,3,4,5]; 2 arr.indexOf(1,-1); //-1 3 arr.lastIndexOf(1,-1) //0
接收两个参数,第一个表示要查找的元素,第二个表示开始位置,如果有则返回该元素在该数组中的位置下标,没有则返回-1
数组大概就总结这么多,同时数组也是对象,以后会在对象的学习总结中再来探讨。