本文详细解析JavaScript中Array对象的创建方式,包括构造函数与字面量语法。重点介绍join与split的字符串转换、concat与slice的数组截取与合并、push/pop与shift/unshift的栈式操作,以及reverse与sort的排序机制。特别指出sort按字符串比较的特性,并深入讲解splice在删除、插入及替换中的三种参数用法。
Array对象的创建方式
在JavaScript中,Array对象提供了多种创建数组的方式。
具体实现代码如下:
//方式一
var aValues=new Array();
//方式二
var aValues=new Array(20);
//方式三
var aColors=new Array();
aColors[0]="red";
aColors[1]="green";
aColors[2]="blue";
//方式四
var aColors=new Array("red","green","blue");
//方式五
var aColors=["red","green","blue"]; 字符串与数组的转换:join与split
接下来介绍join和split方法。
join方法用于将数组元素连接为字符串。
示例代码如下:
var aColors=["red","green","blue"];
alert(aColors.join(","));//输出 "red,green,blue"
alert(aColors.join("-spring-"));//输出 "red-spring-green-spring-blue"
alert(aColors.join("]["));//输出 "red][green][blue" split方法用于将字符串拆分为数组。
示例代码如下:
var sColors="red,green,blue";
var aColors=sColors.split(",");//输出 ["red", "green", "blue"]
var redColors=aColors[0].split("");//输出 ["r", "e", "d"] 数组的合并与截取:concat与slice
下面介绍concat和slice方法。
concat方法用于追加数组元素。
示例代码如下:
var aColors=["red","green","blue"];
var aColors2=aColors.concat("yellow","purple");
alert(aColors);//输出 ["red", "green", "blue"]
alert(aColors2);//输出 ["red", "green", "blue", "yellow", "purple"] slice方法用于返回指定索引范围的新数组。
示例代码如下:
var aColors=["red","green","blue","yellow","purple"];
var aColors2=aColors.slice(1);//输出 ["green","blue","yellow","purple"]
var aColors3=aColors.slice(1,4);//输出 ["green","blue","yellow"] 栈式操作:push、pop、shift与unshift
介绍push和pop方法,它们模拟栈结构。
与栈类似,Array提供了push和pop方法。push方法用于在数组末尾添加一个或多个项,pop方法用于删除最后一个数组项,并返回该项作为函数值。
示例代码如下:
var stack=new Array;
stack.push("red");
stack.push("green");
stack.push("blue");
alert(stack);//输出 ["red","green","blue"]
var vItem=stack.pop();
alert(vItem);//输出 "blue"
alert(stack);//输出 ["red","green"] 介绍shift和unshift方法。
shift方法用于删除数组中的第一项,并将其作为函数返回值;unshift方法用于在数组的第一个位置插入一个项,并将余下的项向下移动一个位置。
示例代码如下:
var aColors=["red","green","blue"];
var vItem=aColors.shift();
alert(aColors);//输出 ["green","blue"]
alert(vItem);//输出 "red"
aColors.unshift("black");
alert(aColors);//输出 ["black","green","blue"] 数组排序与反转:reverse与sort
介绍reverse和sort方法。
reverse方法用于颠倒数组项的顺序;sort方法用于按数组项的值升序排列(此过程会首先调用toString()方法,将所有值转换成字符串进行比较)。
示例代码如下:
var aColors=["blue","green","red"];
aColors.reverse();
alert(aColors);//输出 ["red","green","blue"]
aColors.sort();
alert(aColors);//输出 ["blue","green","red"] 需要注意:
示例代码如下:
var aColors=[3,32,2,5];
aColors.sort();
alert(aColors);//输出 [2,3,32,5] 这是因为数字被转换成字符串,然后按字符代码进行比较的。
数组中部的灵活操作:splice
介绍splice方法。
splice方法用于把数据项插入数组的中部。
1、用作删除:只要声明两个参数,第一个参数为要删除的第一个项的位置,第二个参数为删除项的个数。
示例代码如下:
var aColors=["red","green","blue","yellow"];
aColors.splice(0,2);
alert(aColors);//输出 ["blue", "yellow"] 2、用作插入:声明三个或以上参数(第二个参数为0)就可以把数据插入指定位置,第一个参数为起始位置,第二个参数为0,第三个及以上参数为插入项。
示例代码如下:
var aColors=["red","green","blue","yellow"];
aColors.splice(2,0,"black","white");
alert(aColors);//输出 ["red","green","black","white","blue", "yellow"] 3、用作删除并插入:声明三个或以上参数(第二个参数不为0)就可以把数据插入指定位置,第一个参数为起始位置,第二个参数为要删除的项的个数,第三个及以上参数为插入项。
示例代码如下:
var aColors=["red","green","blue","yellow"];
aColors.splice(2,1,"black","white");
alert(aColors);//输出 ["red","green","black","white", "yellow"]