JavaScript从入门到精通(微视频精编版)
上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 应用自定义方法输出数组中的所有数组元素