javascript数组浅谈3

时间:2023-03-08 18:09:53

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

    every()方法 & some()方法

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

var  arr=[,,,,];
var everyResult=arr.every(function(item,index,arr){ return (item>);
}) //false
var someResult=arr.some(function(item,index,arr){ return (item>);
}) //true

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

    filter()方法

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

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

    map()方法 & forEach()方法

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

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

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

    reduce()方法 & reduceRight()方法

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

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

    indexOf()方法 & lastIndexOf()

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

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

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