数组的操作方法

join()

把数组中的所有元素通过指定分隔符变成一个字符串,不会对原数组产生影响。

格式:

arr.join(strs);

strs表示分割数组的分隔符;如果不传参,数组变成字符串。
调用方式:

var arr = ['a',21,'sdff'];
console.log(arr);//['a',21,'sdff']

var arr2 = arr.join();
console.log(arr2);//a,21,sdff

var arr3 = arr.join('-');
console.log(arr3);//a-21-sdff

pop()

移除数组中的最后一个元素并返回这个元素,改变原数组
格式:

arr.pop();

若数组为空,则返回undefined
调用方式:

var arr = ['a',21,'sdff'];
var arr2 = arr.pop();
console.log(arr);//['a',21]
console.log(arr2);//sdff

var arr4 = [];
var arr3 = arr4.pop();
console.log(arr4);//[]
console.log(arr3);//undefined

shift()

移除数组中的第一个元素并返回这个元素,改变原数组
格式:

arr.shift();

若数组为空,则返回undefined
调用方式:

var arr = ['a',21,'sdff'];
var arr2 = arr.shift();
console.log(arr);//[21,'sdff']
console.log(arr2);//a

var arr4 = [];
var arr3 = arr4.shift();
console.log(arr4);//[]
console.log(arr3);//undefined

push()

向数组的末尾添加一个元素,返回该数组的新长度,改变原数组
格式:

arr.push(str);

strs是必传参数,表示要添加的元素。
调用方式:

var arr = ['a',21,'sdff'];
var arr2 = arr.push();
console.log(arr);//["a", 21, "sdff"]
console.log(arr2);//3

var arr4 = ['a',21,'sdff'];
var arr3 = arr4.push("haha");
console.log(arr4);//["a", 21, "sdff", "haha"]
console.log(arr3);//4

var arr5 = arr4[10].push("xixi");//报错

slice()

从指定数组中返回选定的从start到end的元素组成的新数组,不对原数组修改
格式:

arr.slice(start,end);

start必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1指最后一个元素,-2指倒数第二个元素,以此类推。
end可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
调用方式:

var arr = ['a',21,'sdff'];
console.log(arr);//["a", 21, "sdff"]
console.log(arr.slice());//["a", 21, "sdff"]

var arr4 = ['a',21,'sdff',"lalala",34];
console.log(arr4);//["a", 21, "sdff", "lalala", 34]
console.log(arr4.slice(2,4));//["sdff", "lalala"]
console.log(arr4.slice(-1));//34
console.log(arr4.slice(-4,-1));//[21, "sdff", "lalala"]

splice()

用于对数组的删除、替换、插入,返回被删除的元素组成的数组。改变原数组
格式:

arr.splice(index,howmany,item1,.....,itemX)

index必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item可选。向数组添加的新项目,补替在被删除的位置
调用方式:

var arr4 = ['a',21,'sdff',"lalala",34];
var newarr1 = arr4.splice(2);
console.log(arr4);//["a", 21]
console.log(newarr1);//["sdff", "lalala",34]

var arr5 = ['a',21,'sdff',"lalala",34];
var newarr2 = arr5.splice(2,1,'NEW')
console.log(arr5);//["a", 21, "NEW", "lalala", 34]
console.log(newarr2);//["sdff"]

forEach()

遍历数组。对IE678不兼容
格式:

arr.prototype.forEach(finction(){});

sort()

排序
格式:

arr.sort();

不传参时,默认先比较第一位的Unicode码,从小到大排列,若第一位相同,比较第二位,以此类推。
传参时,参数为函数,这里列举一个从小到大的举例:

function fn(a,b){
    return a-b;
}
//a-b:从小到大排列
//b-a:从大到小排列

调用方式:

var arr = [20,10,2,1,4];
s =    arr.sort();//[1,10,2,20,4]
s = arr.sort(fn);//[1,2,4,10,20]

reverse()

对当前数组序列进行逆序
格式:

arr.reverse();