上QQ阅读APP看书,第一时间看更新
7.4 数组的属性
视频讲解
在数组对象中有length和prototype两个属性。下面分别对这两个属性进行详细介绍。
7.4.1 length属性
length属性用于返回数组的长度。
语法如下:
arrayObject.length
参数说明。
arrayObject:数组名称。
例如,获取已创建的数组对象的长度。代码如下:
01 var arr=new Array(1,2,3,4,5,6,7,8); //定义数组 02 document.write(arr.length); //输出数组的长度
运行结果为:
8
例如,增加已有数组的长度。代码如下:
01 var arr=new Array(1,2,3,4,5,6,7,8); //定义数组 02 arr[arr.length]=arr.length+1; //为新的数组元素赋值 03 document.write(arr.length); //输出数组的新长度
运行结果为:
9
注意
(1)当用new Array()创建数组时,并不对其进行赋值,length属性的返回值为0。
(2)数组的长度是由数组的最大下标决定的。
例如,用不同的方法创建数组,并输出数组的长度。代码如下:
01 var arr1 = new Array(); //定义数组arr1 02 document.write("数组arr1的长度为:"+arr1.length+"<p>"); //输出数组arr1的长度 03 var arr2 = new Array(3); //定义数组arr2 04 document.write("数组arr2的长度为:"+arr2.length+"<p>"); //输出数组arr2的长度 05 var arr3 = new Array(1,2,3,4,5); //定义数组arr3 06 document.write("数组arr3的长度为:"+arr3.length+"<p>"); //输出数组arr3的长度 07 var arr4 = [5,6]; //定义数组arr4 08 document.write("数组arr4的长度为:"+arr4.length+"<p>"); //输出数组arr4的长度 09 var arr5 = new Array(); //定义数组arr5 10 arr5[9] = 100; //为下标为9的元素赋值 11 document.write("数组arr5的长度为:"+arr5.length+"<p>"); //输出数组arr5的长度
运行结果如图7.4所示。
图7.4 输出数组的长度
【例7.02】将东北三省的省份名称、省会城市名称以及3个城市的旅游景点分别定义在数组中,应用for循环语句和数组的length属性,将省份、省会以及旅游景点循环输出在表格中。代码如下:(实例位置:资源包\源码\07\7.02)
01 <table cellspacing="1" bgcolor="#CC00FF"> 02 <tr height="30" bgcolor="#FFFFFF"> 03 <td align="center" width="50">序号</td> 04 <td align="center" width="100">省份</td> 05 <td align="center" width="100">省会</td> 06 <td align="center" width="260">旅游景点</td> 07 </tr> 08 <script type="text/javascript"> 09 var province=new Array("黑龙江省","吉林省","辽宁省"); //定义省份数组 10 var city=new Array("哈尔滨市","长春市","沈阳市"); //定义省会数组 11 var tourist=new Array("太阳岛 圣索菲亚教堂 中央大街","净月潭 长影世纪城 动植物公园", "沈阳故宫 沈阳北陵 张氏帅府"); //定义旅游景点数组 12 for(var i=0; i<province.length; i++){ //定义for循环语句 13 document.write("<tr height=26 bgcolor='#FFFFFF'>"); //输出<tr>开始标记 14 document.write("<td align='center'>"+(i+1)+"</td>"); //输出序号 15 document.write("<td align='center'>"+province[i]+"</td>"); //输出省份名称 16 document.write("<td align='center'>"+city[i]+"</td>"); //输出省会名称 17 document.write("<td align='center'>"+tourist[i]+"</td>"); //输出旅游景点 18 document.write("</tr>"); //输出</tr>结束标记 19 } 20 </script> 21 </table>
运行结果如图7.5所示。
图7.5 输出省份、省会和旅游景点
7.4.2 prototype属性
prototype属性可以为数组对象添加自定义的属性或方法。
语法如下:
Array.prototype.name=value
参数说明。
name:要添加的属性名或方法名。
value:添加的属性的值或执行方法的函数。
例如,利用prototype属性自定义一个方法,用于显示数组中的最后一个元素。代码如下:
01 Array.prototype.outLast=function(){ //自定义outLast()方法 02 document.write(this[this.length-1]); //输出数组中最后一个元素 03 } 04 var arr=new Array(1,2,3,4,5,6,7,8); //定义数组 05 arr.outLast(); //调用自定义方法
运行结果为:
8
该属性的用法与String对象的prototype属性类似,下面以实例的形式对该属性的应用进行说明。
【例7.03】应用数组对象的prototype属性自定义一个方法,用于显示数组中的全部数据。程序代码如下:(实例位置:资源包\源码\07\7.03)
01 <script type="text/javascript"> 02 Array.prototype.outAll=function(ar){ //自定义outAll()方法 03 for(var i=0;i<this.length;i++){ //定义for循环语句 04 document.write(this[i]); //输出数组元素 05 document.write(ar); //输出数组元素之间的分隔符 06 } 07 } 08 var arr=new Array(1,2,3,4,5,6,7,8); //定义数组 09 arr.outAll(" "); //调用自定义的outAll()方法 10 </script>
运行结果如图7.6所示。
图7.6 应用自定义方法输出数组中的所有数组元素