数组在JavaScript应用非常普遍,下面的文章主要介绍数组的相关使用和方法。

一、创建数组和声明

创建数组有两种方式:

创建数组有两种方式:

var arr=new Array("aa","bb","cc");

或者

var arr=new Array(3);  // 创建一个长度为3的数组
arr=["aa","bb","cc"]; // 创建一个长度为3的数组

数组的声明:

var arr=["aa","bb","cc"] ; // 创建数组,并初始化了三个元素

二、数组的长度

javascript给了我们一个数组长度的属性:假设定义了一个数组arr,那么数组的长度就为:arr.length

当然有趣的是,数组的长度可以在数组声明之后去改变,数组改变后的长度如果小于原数组长度,则会删除原数组后面的元素,直到数组长度等于改变后的长度。如果数组改变后的长度大于原数组长度,则会在数组后面加入空元素,直到数组长度等于改变后的长度。

你想要快速的清空一个数组,只需要 arr.length=0 即可。

var arr=["aa","bb","cc"];  // 创建数组,并初始化了三个元素
arr.length=2; // 改变数组的长度
alert(arr.length); // 结果为2,arr=["aa","bb"]

三、数组的后面插入和删除元素

后面插入元素 push:

var arr=["aa","bb","cc"];  
arr.push("dd","ee"); // 结果为 arr=["aa","bb","cc","dd","ee"]

后面删除元素 pop,值得说是,删除元素pop不像push可以多个元素操作,它只能删除数组的最后一个元素,即使你给它很多参数,也只是删除一个。

var arr=["aa","bb","cc"];  
arr.pop(); // 结果为 arr=["aa","bb"]

四、数组的前面插入和删除元素

前面插入元素 unshift

var arr=["aa","bb","cc"];  
arr.unshift(“dd”,”ee”); // 结果为 arr=["dd","ee","aa","bb","cc"]

前面删除元素 shift,在删除元素方面,shift和pop一样,它只能删除数组的最前一个元素,即使你给它很多参数,也只是删除一个。

var arr=["aa","bb","cc"];  
arr.shift( ); // 结果为 arr=["bb","cc"]

五、数组的中间插入和删除元素

前面两大点介绍了从数组的前面和后面分别插入和删除元素的方法。可是实践中,不单单只是会数组的前后操作,有时也会从数组的中间进行操作。那么如何从数组中间进行元素的操作呢?javascript给我们提供一个 splice。

语法:arr. splice(元素位置 , 元素个数 , 插入的元素);

如何理解splice这个函数呢,元素位置是指从数组的那个元素开始操作。元素个数是从该元素位置删除“元素个数”个元素,若为0,则不删除。插入的元素是指删除(或者不删除)操作后,在该元素位置后插入元素。下面看代码,就一目了然:

var arr=["aa","bb","cc"];
arr. splice(1,2,"xx","oo","pp"); // 第1个位置删除2个元素,再添加 "xx","oo","pp" 这三个元素
alert(arr); // 结果为 arr=["aa","xx","oo","pp"]


var arr=["aa","bb","cc"];
arr. splice(1,0,"xx","oo","pp"); // 第1个位置不删除元素,再添加 "xx","oo","pp" 这三个元素
alert(arr); // 结果为 arr=["aa","xx","oo","pp","bb","cc"]

六、数组的截取

slice() 方法可从已有的数组中返回选定的元素。

语法:arr.slice(start,end);

start 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。

end可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

注意:slice并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice( )。

var arr=["aa","bb","cc"];
arr. slice(1,-1);
alert(arr. slice(1,-1)); // 结果为 arr=["bb"]
alert(arr); // 结果为 arr=["aa","bb","cc"] 不会改变arr

七、数组的连接–concat

用于拼接一个或多个数组:

var arr=["aa","bb","cc"];
var arr2=["xx","oo"]
alert(arr.concat(arr2)); //结果为 ["aa","bb","cc","xx","oo"]

注意:concat并不会修改数组,而是返回一个子数组。

八、数组的连接–join

join() 方法用于把数组中的所有元素放入一个字符串。

var arr=["aa","bb","cc"];
arr.join("-");
alert(arr.join()); //结果为 aa,bb,cc
alert(arr.join("-")); //结果为 aa-bb-cc

注意:concat并不会修改数组,而是返回一个字符串。

九:数组的排序

reverse( ): 数组的反转 ,颠倒其元素的顺序

var arr=["aa","bb","cc","dd"];
alert(arr.reverse()); //结果为 arr=["dd","cc","bb","aa"]

sort(fn ) : 该方法用于对数组的元素进行排序。fn可选。规定排序顺序。必须是函数

var arr=["32","2","1","0","12"];
alert(arr.sort()); //结果为 arr=["0","1","12","32"] 是按照首位数字进行排序,而非大小

var arr=["yix","alex","buddy","jason"];
alert(arr.sort()); //结果为 arr=["alex","buddy","jason","yix"] 是按照首位字母进行排序

如果想要实现数组的排序,可以使用以下函数:

var arr=["12","33","43","5"];
var max=arr.sort(function(a,b){
return (a-b);})
alert(max+":"+max[max.length-1]); //结果为 arr=["5","12","33","43"] : 43