ESMAScript5新增的数组方法

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()函数相似,只是它是从后面向前面进行搜索

时间: 2024-11-17 18:50:00

ESMAScript5新增的数组方法的相关文章

字符串方法,js中的数组方法,ES5新增的数组方法,以及jQuery中的数组方法

说明:本片主要对比介绍与数组操作相关的方法 (一)字符串方法(String对象方法) indexOf() //检索字符串 lastIndexOf() //从后向前搜索字符串 match() //找到一个或多个正则表达式的匹配 replace() //替换与正则表达式匹配的子串 search() //检索与正则表达式相匹配的值 slice() //提取字符串的片断,并在新的字符串中返回被提取的部分 split() //把字符串分割为字符串数组 substr() //从起始索引号提取字符串中指定数目

es6新增的数组方法和对象

es6新增的遍历数组的方法,后面都会用这个方法来遍历数组,或者对象,还有set,map let arr=[1,2,3,4,3,2,1,2]; 遍历数组最简洁直接的方法法 for (let value of arr) { console.log(value);//输出1,2,3,4,3,2,1,2 } 1. 数组.map() 返回一个新的数组,es5要复制一个新的数组我们一般用循环,现在直接用map let arr=[1,2,3,4,3,2,1,2]; let newArr=arr.map((va

ES5新增的数组方法之map映射的应用

编写函数map(arr) 把数组中的每一位数字都增加30% function map(arr){   var newArr=[];   for(var i in arr){       newArr.push(arr[i]*=1.3);   } return newArr;} var arr=[10,20,30,40];console.log(map(arr)); 原文地址:https://www.cnblogs.com/jsjx-xtfh/p/9463678.html

JavaScript数组方法对比(深度学习数组)

JavaScript数组方法对比 众所周知,JavaScript提供了许多对数组进行改变的方法,但是有些会对原数组进行影响,有些不会.下边就列举出来. 一.新增 影响原数组 array.push()  //向数组的末尾添加一个或更多元素,并返回新的长度. var array =[1,2,3,4,5]; array.push(6); // [1,2,3,4,5,6]; array.unshift() //向数组的开头添加一个或更多元素,并返回新的长度. var array =[1,2,3,4,5]

ES5中新增的Array方法详细说明

ES5中新增的不少东西,了解之对我们写JavaScript会有不少帮助,比如数组这块,我们可能就不需要去有板有眼地for循环了. ES5中新增了写数组方法,如下: forEach (js v1.6) map (js v1.6) filter (js v1.6) some (js v1.6) every (js v1.6) indexOf (js v1.6) lastIndexOf (js v1.6) reduce (js v1.8) reduceRight (js v1.8) 浏览器支持 Ope

js 数组方法总结

Array数组: length属性 可通过array.length增加或者减少数组的长度,如;array.length=4(数组长3,第四位为undefined),也可单纯获得长度.array[array.length]=''赋值. 检测数组 检测是否数组ES3  instanceof array  ES5新增的Array.isArray(),支持的IE9+,Opera 10.5+,Chrome,Safari5+. 一:原数组不变  [,start],表示0或1个参数 concat() 无参,返

常用数组方法

js与jquery常用数组方法总结 昨天被问数组方法的时候,问到sort()方法是否会改变原来的数组.本来我猜是不会,也是这么说,马上我又觉得,知识这种东西,不确定的时候直接说不确定或不知道就好,只是凭借着不确定的猜测或者是记忆,害人害己,于是我又回答不知道.结果果然...我记错了0.0 还是自己总结测试一下比较靠谱,印象也比较深刻.欢迎大家提出相关意见或建议,提前谢谢哈~ 一.原生js方法 1.遍历数组 in(同时也是对象遍历属性的方法) var a = [1, 2, 3]; for (x i

数组方法汇总

1,javascript提供的原型方法有:join(),push(),pop(),shift(),unshift(),concat(),slice(),splice(),sort(),reverse() 1)join(separator):将数组以分隔符连接起来,返回连接后的字符串,默认以','分隔. var arr = [1,2,3]; arr.join(); //1,2,3 arr.join('-') //1-2-3 2)push()&pop() push():接收任意数量参数,并添加至数组

S5中新增的Array方法详细说明

ES5中新增的Array方法详细说明 by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wordpress/?p=3220 一.前言-索引 ES5中新增的不少东西,了解之对我们写JavaScript会有不少帮助,比如数组这块,我们可能就不需要去有板有眼地for循环了. ES5中新增了写数组方法,如下: forEach (js v1.6) map (js v1.6) filter (js v1.6