码迷,mamicode.com
首页 > 编程语言 > 详细

ESMAScript5新增的数组方法

时间:2015-09-22 10:18:11      阅读:295      评论:0      收藏:0      [点我收藏+]

标签:

1. forEach

该方法没有返回值,对数组的每一项进行指定操作,回调函数中包括3个参数 v(数组的每一项),i(数组的每一项索引),a(调用该方法的数组)

var arr = [1,2,3];
    arr.forEach(function(v,i,a){
    })

 

2. map

该方法必须有返回值,参数函数的返回值作为新数组的元素,不会对原数组进行改变,回调函数中包括3个参数 v(数组的每一项),i(数组的每一项索引),a(调用该方法的数组)

var arr = [1,2,3];
    newArr = arr.map(function(v,i,a){
        return ++v
    })
    alert(arr)//2,3,4

 

3. filter

对数组元素进行过滤,返回一个符合要求的新数组,不会改变原数组,回调函数中包括3个参数 v(数组的每一项),i(数组的每一项索引),a(调用该方法的数组)

var arr = [1,2,3];
    newArr = arr.filter(function(v,i,a){
        return v > 2
    })
    alert(newArr)//3

 

4.every

检测数组元素是否满足要求。并且只有数组全部元素都满足要求时,才会返回true,否则返回false

var arr = [1,2,3];
    br = arr.every(function(v,i,a){
        return v > 0
    })
    alert(br)//true
var arr = [1,2,3];
    br = arr.every(function(v,i,a){
        return v > 1
    })
    alert(br)//false

 

5.some

与every方法相同,不同的是该方法只要数组元素有一项满足要求,则返回true

var arr = [1,2,3];
    br = arr.some(function(v,i,a){
        return v > 2
    })
    alert(br)//true

 

6.reduce

这个方法对于新手来说或许挺难理解的,类似于nodejs async watefall 串行关联语句,即返回最后一次计算的值,回调函数接收2个参数callbackV(第一次为数组的第一项,例:第二次循环则为第一项操作成功的值),v(数组的每一项索引)

 

var arr = [1,2,3];
    br = arr.reduce(function(x,y){
        alert(x);//1,6,11
        alert(y);//2,3,11 这里的11为最后一次循环返回给br的值
        return x+5;
    })
    alert(br)//11

 

 

7.reduceRight(): 与reduce()函数作用相同,只是它从右向左依次取数组元素

 

8. indexOf 根据参数找数组匹配项,返回项的索引,找不到则返回-1,匹配时使用===全等匹配

 

var arr = [1,2,3];
    i = arr.indexOf(1);
    alert(i)//0

 

var arr = [1,2,3];
    i = arr.indexOf("1");//这里是字符串1
    alert(i)//-1

 

9. lastIndexOf(value [, start]): 与indexOf()函数相似,只是它是从后面向前面进行搜索

 

ESMAScript5新增的数组方法

标签:

原文地址:http://www.cnblogs.com/yangzonglong/p/4828053.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!