7.3 操作数组元素
视频讲解
数组是数组元素的集合,在对数组进行操作时,实际上是对数组元素进行输入或输出、添加或删除的操作。
7.3.1 数组元素的输入和输出
数组元素的输入即为数组中的元素进行赋值,数组元素的输出即获取数组中元素的值并输出,下面分别进行介绍。
1.数组元素的输入
向数组对象中输入数组元素有3种方法。
(1)在定义数组对象时直接输入数组元素
这种方法只能在数组元素确定的情况下才可以使用。
例如,在创建数组对象的同时存入字符串数组。代码如下:
var arr = new Array("a","b","c","d"); //定义一个包含4个元素的数组
(2)利用数组对象的元素下标向其输入数组元素
该方法可以随意地向数组对象中的各元素赋值,或是修改数组中的任意元素值。
例如,在创建一个长度为7的数组对象后,向下标为3和4的元素中赋值。
01 var arr = new Array(7); //定义一个长度为7的数组 02 arr[3] = "a"; //为下标为3的数组元素赋值 03 arr[4] = "b"; //为下标为4的数组元素赋值
(3)利用for语句向数组对象中输入数组元素
该方法主要用于批量向数组对象中输入数组元素,一般用于向数组对象中赋初值。
例如,可以通过改变变量n的值(必须是数值型),给数组对象赋指定个数的数值元素。代码如下:
01 var n=7; //定义变量并对其赋值 02 var arr = new Array(); //定义一个空数组 03 for (var i=0;i<n;i++){ //应用for循环语句为数组元素赋值 04 arr[i]=i; 05 }
2.数组元素的输出
将数组对象中的元素值进行输出有3种方法。
(1)用下标获取指定元素值
该方法通过数组对象的下标,获取指定的元素值。
例如,获取数组对象中的第3个元素的值。代码如下:
01 var arr = new Array("a","b","c","d"); //定义数组 02 var third = arr[2]; //获取下标为2的数组元素 03 document.write(third); //输出变量的值
运行结果为:
c
注意
数组对象的元素下标是从0开始的。
(2)用for语句获取数组中的元素值
该方法是利用for语句获取数组对象中的所有元素值。
例如,获取数组对象中的所有元素值。代码如下:
01 var str = ""; //定义变量并进行初始化 02 var arr = new Array("a","b","c","d"); //定义数组 03 for (var i=0;i<4;i++){ //定义for循环语句 04 str=str+arr[i]; //将各个数组元素连接在一起 05 } 06 document.write(str); //输出变量的值
运行结果为:
abcd
(3)用数组对象名输出所有元素值
该方法是用创建的数组对象本身显示数组中的所有元素值。
例如,显示数组中的所有元素值。代码如下:
01 var arr = new Array("a","b","c","d"); //定义数组 02 document.write(arr); //输出数组中所有元素的值
运行结果为:
a,b,c,d
【例7.01】某班级里有3个学霸,创建一个存储3个学霸姓名(张三、李四、王五)的数组,然后输出这3个数组元素。首先创建一个包含3个元素的数组,并为每个数组元素赋值,然后使用for循环语句遍历输出数组中的所有元素。代码如下:(实例位置:资源包\源码\07\7.01)
01 <script type="text/javascript"> 02 var students = new Array(3); //定义数组 03 students[0] = "张三"; //为下标为0的数组元素赋值 04 students[1] = "李四"; //为下标为1的数组元素赋值 05 students[2] = "王五"; //为下标为2的数组元素赋值 06 for(var i=0;i<3;i++){ 07 document.write("第"+(i+1)+"个学霸姓名是:"+students[i]+"<br>"); //循环输出数组元素 08 } 09 </script>
运行结果如图7.3所示。
图7.3 使用数组存储学霸姓名
7.3.2 数组元素的添加
在定义数组时虽然已经设置了数组元素的个数,但是该数组的元素个数并不是固定的。可以通过添加数组元素的方法来增加数组元素的个数。添加数组元素的方法非常简单,只要对新的数组元素进行赋值即可。
例如,定义一个包含两个元素的数组,然后为数组添加3个元素,最后输出数组中的所有元素值,代码如下:
01 var arr = new Array("零基础学JavaScript","零基础学PHP"); //定义数组 02 arr[2] = "零基础学Java"; //添加新的数组元素 03 arr[3] = "零基础学C#"; //添加新的数组元素 04 arr[4] = "零基础学Oracle"; //添加新的数组元素 05 document.write(arr); //输出添加元素后的数组
运行结果为:
零基础学JavaScript,零基础学PHP,零基础学Java,零基础学C#,零基础学Oracle
另外,还可以对已经存在的数组元素进行重新赋值。例如,定义一个包含两个元素的数组,将第二个数组元素进行重新赋值并输出数组中的所有元素值,代码如下:
01 var arr = new Array("零基础学JavaScript","零基础学PHP"); //定义数组 02 arr[1] = "零基础学Java"; //为下标为1的数组元素重新赋值 03 document.write(arr); //输出重新赋值后的新数组
运行结果为:
零基础学JavaScript,零基础学Java
7.3.3 数组元素的删除
使用delete运算符可以删除数组元素的值,但是只能将该元素恢复为未赋值的状态,即undefined,而不能真正地删除一个数组元素,数组中的元素个数也不会减少。
例如,定义一个包含3个元素的数组,然后应用delete运算符删除下标为1的数组元素,最后输出数组中的所有元素值。代码如下:
01 var arr = new Array("零基础学JavaScript","零基础学PHP","零基础学Java");//定义数组 02 delete arr[1]; //删除下标为1的数组元素 03 document.write(arr); //输出删除元素后的数组
运行结果为:
零基础学JavaScript,,零基础学Java
注意
应用delete运算符删除数组元素之前和删除数组元素之后,元素个数并没有改变,改变的只是被删除的数组元素的值,该值变为undefined。