javascript数组方法汇总

Posted on 2015-04-10 10:44  BrianWong  阅读(269)  评论(0)    收藏  举报

数组是每种语言最常用的对象之一,javascript也不例外,所以这里我就把javascript中数组的方法都总结一下。

join(argument):把数组的元素组合成一个字符串

用法:array.join()

var array = ['javascript','html','css'];
var str = array.join();//结果为:javascripthtmlcss
var str1 = array.join('-');//结果为:javascript-html-css

join()函数的参数是可选择的,你如果不传则表明把数组中的元素直接连接,如果传递了一个参数,则表明把数组中的元素以这个参数为过渡连接起来。

返回:返回组合后的字符串

pop():移除数组的最后一个元素

用法:array.pop()

var array = ['backbone','angular','jquery'];
array.pop();//执行后数组变为:['backbone','angular']

返回:被移除的元素(字符串);

push():在数组的最后添加元素(可添加多个)

用法:array.push(ele)

var array = ['backbone','angular','jquery'];
array.push('react');//执行后数组变为:['backbone','angular','jquery','react']

返回:添加元素后数组的长度;

shift():移除数组的第一个元素

用法:array.shift()

var array = ['backbone','angular','jquery'];
array.shift();//执行后数组变为:['angular','jquery']

返回:被移除的元素(字符串)

unshift():在数组的开始添加元素(可添加多个)

用法:array.unshift(eles)

var array = ['backbone','angular','jquery'];
array.unshift('react');//执行后数组变为:['react','backbone','angular','jquery']

返回:添加元素后数组的长度

splice():自定义添加元素

用法:array.splice(position,num,element)

position:定义从数组的哪个位置开始插入数据(0表示从数组的开始插入,1表示为在数组的第一个元素后面插入,如此类推)

num:要移除的元素数量(若为0则不删除元素直接插入,若不为0则从指定的位置开始删除num个元素)

element:要插入的元素,可多个,如:'a'或'a','b'...,如果不输入该参数则该函数可以用来删除元素

var array = ['backbone','angular','react'];
array.splice(1,1,'jquery');//变为['backbone','jquery','react',]

reverse():把数组元素进行反转

用法:array.reverse()

var array = ['backbone','angular','react'];
array.reverse();//变为['react','angular','backbone',]

返回:反转后的数组

sort():根据字母顺序排序

用法:array.sort()

var array = ['backbone','angular','react'];
array.sort();//变为['angular','backbone','react']

sort()也可以用作对数字排序

var array = [21,2,32];
array.sort();//变为[2,21,32]
array.sort(function(a,b){return b-a});//变为:[32,21,2]

sort()函数里面可以传递一个函数,函数里面定义你需要进行排序的方法。

concat():把两个数组中的元素合并成一个数组

用法:array.concat(arguments)

arguments:一个或多个字符串

var arr1 = ["angular", "backbone"];
var arr2 = ["jquery", "zepto"];
var arr3 = ["sass", "less"];
arr1.concat(arr2,arr3);//arr1:["angular", "backbone","jquery", "zepto","sass", "less"]

返回:合并后的数组

slice(start,end) :截出指定部分的数组元素

用法:array.slice(start,end)

start:被截出数组开始的位置

end:被截出数组结束的位置,不过不包含最后位置的这个元素

var array = ["angular", "backbone","jquery", "zepto"];
var newArray = array.slice(1,3);//变成:[ "backbone","jquery"]

从后面开始截数据:

var array = ["angular", "backbone","jquery", "zepto"];
var newArray = array.slice(0,-3);//变成:[ "angular"]

当要从数组尾部开始截数组的时候,start要为0;end则为你需要截走的长度,不过是要为负的。而且要注意的是当end为负数的时候,返回的是剩下的数组,跟从数组开始截的不同。

返回:截出后的新数组

map():对数组的每个元素调用定义的回调函数并返回包含结果的数组。

用法:array.map(callback,arg)

array:必需。 一个数组对象。

callback:必选。 最多可以接受三个参数的函数。 对于数组中的每个元素,map 方法都会调用callbackfn 函数一次。

arg:可选。 callbackfn 函数中的 this 关键字可引用的对象。 如果省略 thisArg,则 undefined将用作 this 值。

var array= ['angular', 'backbone', 'jquery'];
function callback(ele) {
    return ele+'-';
}
var result = array.map(callback);//结果为:['angular-','backbone-','jquery-']

返回:一个新数组,其中的每个元素均为关联的原始数组元素的回调函数返回值。

reduce():对数组中的所有元素调用指定的回调函数。 该回调函数的返回值为累积结果,并且此返回值在下一次调用该回调函数时作为参数提供。

用法:array.reduce(callback,arg)

array:必需。 一个数组对象。

callback:必需。 一个接受最多四个参数的函数。 对于数组中的每个元素,reduce 方法都会调用callbackfn 函数一次。

arg:可选。 如果指定 initialValue,则它将用作初始值来启动累积。 第一次调用 callbackfn 函数会将此值作为参数而非数组值提供。

var array= ["angular", "backbone", "jquery"];
function appendCurrent (previousValue, currentValue) {
    return previousValue + "::" + currentValue;
}
var result = array.reduce(appendCurrent);//结果为:angular::bakcbone::jquery

返回:通过最后一次调用回调函数获得的累积结果