一、索引方法

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

运行结果:

 

posted on 2018-04-09 20:35  小之  阅读(821)  评论(0编辑  收藏  举报