一、索引方法
indexOf()/lastIndexOf()方法
1、indexOf(searchElement,fromIndex):在数组中查找某一项,如果找到了返回该项的索引,如果没找到返回-1,该方法跟字符串的indexOf使用方法是差不多的。
2、该方法有两个参数,第一个参数表示要查找的项,第二个参数表示开始查找的位置,当第二个参数省略的时候表示默认从第0个位置开始查找。如下实例:
var arr = [2,1,4,5,1,5]; alert(arr.indexOf(4)); //弹出2,因为4在数组中的索引值为2 alert(arr.indexOf(4,3)); //弹出-1,因为从第三个位置开始往后找的时候,找不到4这个元素
注意:跟该方法相同的还有一个lastIndexOf()方法,跟indexOf()方法不同的是,该方法是从后往前面开始找
二、迭代方法
迭代方法包含some()、every()、filter()、map()和forEach()五个方法,这些方法都接收两个参数,第一个参数是一个函数,他接收三个参数,数组当前项的值、当前项在数组中的索引、数组对象本身。第二个参数是执行第一个函数参数的作用域对象,也就是上面说的函数中this所指向的值。注意,这几种方法都不会改变原数组。
every()方法
该方法对数组中的每一项运行给定函数,如果该函数对每一项都返回 true,则返回true。
var arr = [2,1,4,5,1,5]; var result=arr.every(function(item,index,array){ return item>5 }) alert(result); //弹出false 因为数组中不是每一项都大于5
var arr = [2,1,4,5,1,5]; var result=arr.every(function(item,index,array){ return item>0 }) alert(result); //弹出true 因为数组中每一项都大于0
some()方法
some()方法跟every的用法很相似,不同的是该方法对数组中的每一项运行给定函数,如果该函数对其中的任意一项返回 true,则返回true。
var arr = [2,1,4,5,1,5]; var result=arr.some(function(item,index,array){ return item>4 }) alert(result); //弹出true 因为数组中有大于4的项
注意:some方法会在数组中任意一项执行函数返回true之后,不在进行循环。
filter()方法
该方法对于数组中每一项运行给定函数,将满足条件的项组成一个新的数组返回,利用这个方法可对数组元素进行过滤筛选
var arr = [2,1,4,5,1,5]; var result=arr.filter(function(item,index,array){ return item>4 }) alert(result); //弹出5,5,因为该数组中满足条件的只有两个5
forEach()方法
该方法对数组中的每一项运行给定函数。这个方法没有返回值。这个方法其实就是遍历循环,和for循环没有太大差别。jquery()也提供了相应的方法each()方法。
var arr = [2,1,4,5,1,5]; var result=arr.forEach(function(item,index,array){ console.log(item) })
运行结果:
map()方法
该方法对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
var arr = [2,1,4,5,1,5]; var result=arr.map(function(item,index,array){ return item*2 }) alert(result); //打印出5,5,因为该数组中满足条件的只有两个5
运行结果: