本文详细介绍JavaScript中数组的创建方式,包括使用new Array和字面量[]两种形式。深入讲解数组的长度属性、元素访问,以及toString、join、split、reverse、sort、push和pop等核心方法的用法与示例,帮助开发者掌握数组的基本操作技巧。
JavaScript数组基础概念
字符串、数值和布尔值均属于离散值(scalar)。若变量为离散值,则其在任意时刻仅包含单一数值。
若需通过变量存储一组数据,则应使用数组(array)。
数组是由多个同名数值构成的集合,集合中的每个项目称为数组的元素(element)。例如,可使用变量team存储团队中每位成员的名字。
数组的创建方式
在JavaScript中,数组通过关键字Array声明创建,同时可声明变量的长度length。例如:
代码如下:
var aTeam = new Array(12);//声明变量的长度
当无法预知数组最终包含的元素个数时,声明数组可不指定具体数量。例如:
代码如下:
var aTeam = new Array();//数组最终个数未知的情况下,可以不声明具体的个数
aTeam[0] = 1414;
aTeam[1] = "北京";
aTeam[2] = 0x4;
aTeam[3] = "i can";
aTeam[4] = "red";
aTeam[5] = "blue";
aTeam[6] = "orange";
此外,还可以直接创建数组。
代码如下:
var aTeam = new Array("111","blue","red","beijing");
数组长度与元素访问
与字符串类似,数组也可通过length属性获取或指定长度。
代码如下:
var aTeam = new Array("111","blue","red","beijing" );
document.write(aTeam[1]+"<br>");
document.write(aTeam.length +"<br>")
注意:这有助于更深入地理解数组。
代码如下:
var aTeam = new Array("111","blue","red","beijing" );
aTeam[20] = "12415"
document.write(aTeam[20]+"<br>");
document.write(aTeam.length +"<br>")
数组的字面量定义与转换
另外,数组还可以使用[]来定义,中间使用逗号分隔。
代码如下:
sTeam = [10,"5565","北京",33263,"red"]
document.write(sTeam[3]) //输出 33263
数组可使用toString()方法方便地转换为字符串。
代码如下:
sTeam = [10,"5565","pking",33263,"red"]
document.write(sTeam.toString()) //
//输出结果 10,5565,pking,33263,red
document.write(typeof(ss));
//输出结果 string
数组与字符串的转换方法
若将数组转换为字符串时不想使用逗号连接,可使用join()方法。
代码如下:
sTeam = [10,"5565","pking",33263,"red"]
ss = sTeam.join("-");
dd =sTeam.join("][")
//输出结果 10,5565,pking,33263,red
document.write(ss);
document.write(dd);
//输出 10-5565-pking-33263-red 10][5565][pking][33263][red
对于字符串,JavaScript使用split()方法将其转换为数组。
代码如下:
var fruit = "apple,2151,orange";
sfruit = fruit.split(",")
document.write(sfruit); //输出 apple,2151,orange
document.write(sfruit.join("-")); //输出apple-2151-orange
数组的反转与字符串处理
接上例,JavaScript提供了reverse()方法使数组反转。
代码如下:
var fruit = "apple,2151,orange";
sfruit = fruit.split(",")
document.write(sfruit); //输出 apple,2151,orange
document.write(sfruit.join("-")+"<br>"); //输出apple-2151-orange
document.write(sfruit.reverse()+"<br>");输出 orange,2151,apple
document.write(sfruit.reverse().toString()+"<br>");输出apple,2151,orange
对于字符串反转,JavaScript没有直接的转换方法。我们可以利用split()将字符串转为数组,利用reverse()进行反转,再利用join()进行连接,从而实现字符串反转。
代码如下:
var fruit = "2151,orange,apple";
var sfruit = "iambeijing123";
document.write(fruit.split(",").reverse()+"<br>");//2151,orange,apple
document.write(sfruit.split("").reverse().join("")+"<br>");//输出iambeijing123
数组的排序与栈操作
利用sort()方法可使数组元素按字母顺序排序。
代码如下:
fruit = ["orange2","2151","orange","apple"]
document.write(fruit.sort());//输出结果2151,apple,orange,orange2
关于push()和pop()的用法。
代码如下:
sfruit = new Array();
sfruit.push("red");
sfruit.push("green");
sfruit.push("oragen");
sfruit.push("blue");
document.write(sfruit.length + sfruit.toString()+"<br>");
var wfruit = sfruit.pop();
document.write(wfruit+"<br>")
document.write(sfruit.toString())
如上所述,JavaScript将数组视为一个堆栈,通过push()和pop()方法进行压栈和出栈处理。