一、Join
Join是Array类的一个原型方法,作用是把Js数组的元素以传入方法的参数字符隔开,默认使用",",可以传空格。
使用方法:
1 var arrJoin=['a','b','c']; 2 3 arrJoin.join();/*return "a,b,c"*/ 4 5 arrJoin.join("|") /*return "a|b|c"*/
非数组或者类数组要使用该方法可以通过call()方法来调用Array原型的方式:
/*非Array类型对象要使用Array原型的方法,必须声明length成员,且key必须为可以索引值,即int。*/ var arrLike={"0":"a","1":"b","2":"c",length:3}; Array.prototype.join.call(arrLike,"|");/*return "1|2|3"*/ /*非Array类型对象的key如果不是从0开始,则会从第一个key的值代表的索引开始返回值:*/ var arrLike2={"1":"a","2":"b","3":"c",length:3};/*key从1开始,而不是0*/ Array.prototype.join.call(arrLike,"|");/*return "|a|b",长度为3,索引从0开始,但0处没有值,于是0位置空,返回|a|b*/
二、reverse
reverse方法倒序调用数组,会修改数组的引用,即调用reverse的数组将被修改。
var arrReverse=[1,2,3]; arrReverse.reverse(); //arrReverse:[3,2,1]
同样,类数组对象也可以调用该方法
var arrLike={"0":"a","1":"b","2":"c",length:3}; Array.prototype.reverse.call(arrLike);//arrLike:{0:"c",1:"b",2:"c"}
三、sort
sort方法会对数组进行排序,不修改原数组,默认排序方式为字母表.注意:null的以字符串'null'的形式排序,undefined则出现在最后
var arrSortDef=[5,2,1,3,5,"B","A","a","z","组","数",null,undefined] arrSortDef.sort();//return [0,1,2,3,5,"A","B","a",null,"z","数","组",undefined]
sort方法也可以不按字母表的顺序进行排序,这时需要设置sort的参数为一个比较函数:
var arrSortCus=[1,3,2,5,0]; /*现在使用数值大小进行排序,数值大的排在前面*/ arrSortcus.sort(function(a,b){return b-a})
四、concat()
concat()可以用来组合拼接多个数组,且不修改调用的数组,而是返回一个新的数组,concat不会扁平化第一层之后的数组。
var arrConcat=[1,2]; /*return [1,2,"First","Second",["Third",3],Forth,4]*/ arrConcat.concat(["First"],["Second"],[["Third",3],Forth,4]);
五、slice()
slice的作用的获取数组指定位置的元素。需要两个参数,分别指定指定位置开始和结束,并返回两个位置之间元素组成的数组(不包括最后一个参数指定的位置)。不修改调用数组。
var arrSlice=[1,2,3,4,5,6,7]; arrSlice.slice(2,6)//return [3,4,5,6]
六、splice()
splice是array类中唯一一个可以同时删除和新增元素的数组方法。并且会修改调用的数组。
- 首先splice删除元素为例。当只给splice传递一个参数时,即指定从该参数位置处开始(包括该位置)截取到数组末尾,返回值为被截的数组,并修改调用数组(即为被截的原数组剩下元素组成的数组);而当传给两个参数时,前者指定截取的位置,后者指定从前者(包含)位置开始删除的长度
var arrSplice=[1,2,3,4,5,6,7,8]; arrSplice.splice(4)/*return [5,6,7,8];arrSplice:[1,2,3,4]*/ arrSplice.splice(4,2)/*return [5,6];arrSplice:[1,2,3,4,7,8]*/
2. splice 同时删除和插入
var arrSpliceAddAndDele=[1,2,3,4,]; /*删除2,3,4;插入a,b,c*/ arrSpliceAddAndDele.splice(1,3,'a','b','c')/*arrSpliceAddAndDele:[1,'a','b','c']*/
六、push与pop
push与pop把数组当作栈来使用,push压入栈尾,pop从栈尾出栈。 会修改调用数组。
var stack=[]; stack.push(1);/*stack:[1]*/ stack.push(2,3);/*stack:[1,2,3]*/ stack.pop();/*stack:[1,2]*/
七、unshift与shift
unshift,shift和push,pop的功能相同,但作用的位置不同,unshift和shift是作用在最前的元素。也即是unshift在数组最前方插入元素,而shift则把最前方的元素删除。会修改调用数组。
var arr=[]; arr.unshift(1);/*a:[1],return 1*/ arr.unshift([2]);/*a:[1,[2]]*/ arr.shift()/*a:[[2]] return:1*/
八、toString与toLocalString
toString扁平化返回数组每个元素组成的字符串。toLocalString在数组中已经抛弃
var arrString=[1,2,3,4,['a','b',['c','d']]]; arrString.toString()/*return "1,2,3,4,a,b,c,d" */