数组是每种语言最常用的对象之一,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
返回:通过最后一次调用回调函数获得的累积结果
浙公网安备 33010602011771号