日期:2014-05-16  浏览次数:20338 次

JS中数组的一些方法
今天工作不算太忙,抽空学习了下JavaScript中数组的相关方法
首先看看数组删除元素相关的几个方法
1、pop(): 删除数组最后一个元素,并返回删除的元素
/* 
* javaScript中数组(Array)pop方法
* 删除数组最后一个元素,并返回被删除的元素
*/
function testPop(){
	var arr = new Array('h','x','q');
	alert(arr.pop());
	alert(arr);
}


2、shift(): 删除数组的第一个元素,并返回被删除的元素
/**
* javascript中数组(Array)shift方法
* 删除数组中第一个元素,并返回删除的元素
**/
function testShift(){
	var arr = ['I','Love','you'];//JSON定义
	alert(arr);
	alert(arr.shift());
	alert(arr);
}


3、splice(): 删除指定元素,并向数组添加新元素
/**
* javascript中数组(Array)splice方法
* 从数组中删除元素,并增加元素
* 返回删除的元素
*/
function testSplice(){
	var arr = new Array('beijing','shanghai','guangzhou','hangzhou');
	alert(arr.splice(1,1));//从第1个位置开始,删除一个元素,返回'shanghai'
	alert(arr);
	alert(arr.splice(0,1,'jiangxi','hubei','sichuan'));// 从第0个位置开始,删除一个元素,然后从0位置开始增加'jiangxi','hubei','sichuan'三个元素
	alert(arr);
	alert(arr.splice(0,'hainan','sanya','chengdu'));// 第二个元素应该为number类型的,所以删除不成功,返回空,然后从0位置开始增加'sanya','chengdu'2个元素
	alert(arr);
}


看完删除的方法后,我们看看增加元素的方法
4、push(): 向数组的末尾添加一个或者多个元素,并返回数组新的长度
/*
* javaScript中数组(Array)push方法
* 往数组的尾部添加一个或者多个元素,并返回新的长度
*/
function testPush(){
	var arr1 = new Array('h','x','q');
	arr1.push('i');// 返回4
	alert(arr1);// h,x,q,i
	alert(arr1.push('n','g'));//返回6
	alert(arr1.length);//返回6
}

5、unshift(): 向数组的开头添加一个或者多个元素,并返回新的长度
/**
* javascript中数组(Array)unshift方法
* 在数组开头增加指定元素(一个或者多个)
* 返回增加元素后数组长度
*/
function testUnshift(){
	var arr1 = new Array('h','x','q');
	alert(arr1.unshift(12));
	alert(arr1);// 12,h,x,q
	alert(arr1.unshift(12,'huxiaoqing'));
	alert(arr1);//12,huxiaoqing,12,h,x,q
}


6、concat(): 连接俩数组或者多个数组返回一个新的数组,原数组不受影响
var arr1 = new Array('I');
var arr2 = new Array('L','O','V','E');
var arr3 = new Array('Y','O','U');
/* 
* JavaScript中数组(Array)concat方法
* 连接两个或多个数组返回一个新的数组,原数组不收影响
*/
function testConcat(){		
	alert(arr1.concat(arr2));//返回I,L,O,V,E
	alert(arr1.concat(arr2,arr3));//返回I,L,O,V,E,Y,O,U
	alert(arr1);//I
	alert(arr2);//L,O,V,E
	alert(arr3);//Y,O,U
}


最后看看数组的几个获取元素的方法
7、join(): 把数组中的元素放入一个字符串,元素间用指定的符合隔开
function testJoin(){
	var arr = new Array('Y','O','U');
	var str = arr.join("|");
	alert(str);
}


8、reverse(): 颠倒数组中元素的顺序
/*
* javascript中数组(Array)reverse方法
* 颠倒数组中的元素顺序,并返回颠倒后的数组,原数组内元素顺序变化
*/
function testReverse(){
	var arr = new Array('Y','O','U');
	arr.reverse();
	alert(arr);//U,O,Y
	alert(arr.reverse());//Y,O,U
}


9、slice(): 返回数组中选定的元素
/**
* javascript中数组(Array)slice方法
* 从数组中返回选定的元素,第一个为起始位置,第二个我终止位置
* ps:数组的起始位置为0
*/
function testSlice(){
	var arr = new Array('Y','O','U');
	alert(arr.slice(1,3));// O,U
	alert(arr.slice(1));//O,U
	alert(arr.slice(0));//Y,O,U
}


10、sort(): 排序方法,对数组中元素进行排序,并返回排序后的数组,原数组元素顺序受影响
/**
* javaScript中数组(Array)sort方法
* 对数组中元素进行排序,并返回排序后的数组
*/
function testSort(){
	var a1 = [11,1,100,45,'A','B'];
	alert(a1.sort());//只根据字符顺序排序
	alert(a1.valueOf());
	alert(a1.sort(function(a,b){return a-b;}));//如果要对数字进行排序,需要给sort方法定义一个排序规则
}


在testSort()中还用到了valueOf()方法,这个方法就是返回数组的元素值