《HTML教程》-5.4教学材料_第1页
《HTML教程》-5.4教学材料_第2页
《HTML教程》-5.4教学材料_第3页
《HTML教程》-5.4教学材料_第4页
《HTML教程》-5.4教学材料_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

5.4.1数组声明数组声明有两种方式,第一种是字面量声明数组,第二种是new关键字声明。如:vararr1=[];//声明一空数组vararr2=newArray();//声明一空数组vararr3=[1,3,[1,3,5],5];//声明数组并赋初值vararr4=newArray(6,7,8,9);//声明数组并赋初值vararr5=newArray(10);//声明可以包含10个元素的数组注意,主张避免采用new关键字声明数组,推荐使用字面量方式声明数组。如,vara=newArray();//声明空数组,不推荐vara=[];//声明空数组,推荐。5.4.2数组元素访问数组元素使用下标的方式进行访问,数组的下标从0开始,语法格式如下:

数组名[下标];数组元素访问可用于引用数组元素的值,也可用于向数组元素赋值。如,document.write(数组名[下标]);//输出指定元素的值。

数组名[下标]=值;但是要注意的是,JS数组的下标不要求是连续的,也就是说JS数组中各元素之间不一定是相邻的,可以隔几个再赋值。如,vararr=[];//声明空数组arr[10]=“abc”;//对第11个元素进行赋值,而前10个元素为空5.4.3数组常用方法

JavaScript的数组提供了许多实用的数组操作方法,方法数组的操作,现总结如下,如表5-1所示。ECMAScript5新增了一些集合方法,如表5-2所示。这是方法是“面向函数”的,关于JavaScript“面向函数”的编程,请参阅有关书籍。除了上面的方法之外,数组还有一个length属性,它表示数组中最大下标值加1。在JS中它不一定等于数组元素的个数,因为数组的下标可以是不连续的。下面以一个例子说明数组方法的用法。例子可能比较长,各位读者要耐心阅读,结合注释、运行结果(直接运行随书源码的Listing5-4.html)、表5-1、5-2和清单后面的说明仔细理解,这对于Ajax编程是十分重要的。实例代码如清单5-4所示。恭喜你仔细读完了清单5-4中的一百多行代码。许多知识通过代码一看就明白,下面对于需要解释和重要的知识点再作进一步的解释。(1)数组声明与长度

首先,数组声明中使用new关键字声明数组时,构造函数Array()中可以没有参数,也可以指定1个数字参数,此时该数字为数组的长度,而不是1个数组元素,如vararray=newArray(10);是声明array大小为10的数组,而不是只包含一个元素10的数组。但如果参数多于1个,则代表声明初始元素为所有参数的数组。如vararray=newArray(3,4);声明包含元素3和4的数组,而不是声明一个3行4列的二维数组。这一点要特别注意,与其他编程语言不同。要声明二维数组,可以把一维数组中的元素声明为数组。还有一点就是,二维数组中的第二维长度可以不等,也与其他编程语言不同。第二,数组的长度属性length。它是一个可读可写的属性,也就是说我们可以随时修改一个数组的长度。但要注意如果设置的长度比元素个数小,则会丢弃后面的元素。如果设置的长度比元素个数多,则多出来的元素为undefined。(2)sort函数sort函数默认情况下按照字母(必要时先进行类型转换)顺序对数组进行排序。可以指定排序规则,即指定一个函数作为排序规则。排序规则如下:arr3.sort(function(a,b){//从大到小 returnb-a;})如果b–a>0,表示b大于a;如果b–a<0表示b小于a;如果b–a=0,则表示b等于a。按照这个函数的返回结果对a和b进行排序。(3)slice()函数这个函数的参数比较多,这里再说明一下。函数的原型如下:arrayObject.splice(index,howmany,item1,.....,itemX)参数说明:◆arrayObject:调用splice函数的数组对象。◆index:删除元素的起始位置。◆howmany:删除元素的个数。◆item1,…,itemX:新插入数组的元素,可以是任意类型,也可以是数组。

◆返回值:被删除元素组成的数组。如清单中的以下代码://arr3=[8,7,6]vardeletedElem=arr3.splice(1,2,[3,4,5],3,4);//arr3=[8,[3,4,5],3,4]表示从第2个元素(第一个参数为1,从零开始)开始删除2个元素(第二个参数为2),即7和6,然后插入[3,4,5]、3和4三个元素,所以arr3变成了[8,[3,4,5],3,4],并返回删除元素组成的数组[7,6]。(4)reduce函数reduce函数接收两个参数,第一个参数为用于精简的函数,第二个参数为传给精简函数的初始值,为可选参数,若没有指定,则以数组的第一个元素为初始值。返回值为经过精简计算的结果。关于精简函数的说明。这里的精简函数,也就是传递给reduce函数的参数函数,它的参数与前面的forEach和map函数的参数函数不同,各参数含义如下:function(累积结果,数组元素值,下标,数组引用){}其中,累积结果最初为reduce第二个参数的值,如果没有指定,则以数组的第一个元素值为准。为了直观的理解这4个参数的含义,我们对reduce函数求数组元素乘积的代码修改如下,就可以在控制台观察到每个循环中4个参数的变化。varr=[1,2,3,4].reduce(function(s,v,i,a){ console.log("s="+s); console.log("v="+v); console.log("i="+i);console.log('a['+i+']='+a[i]); returns*v;},1);执行过程各参数变化如表5-3所示。表5-3reduce函数在数组[1,2,3,4]上的执行过程调用次数累积结果s元素值v下标i数组a[i]返回值s*v1110112121223232364643424(5)“面向函数”的函数总结

所谓面向函数的函数是指表5-2中的函数,也就是ECMAScript5新增的函数。这些函数除indexOf和lastIndexOf之外,都接收一个函数参数,这个函数参数称为参数函数。参数函数的一般格式如下:functionfunName(value,index,array){}参数说明:◆funName:函数名,也可使用匿名函数,如清单5-4中的参数函数。◆value:调用者数组中本次调用的当前元素的值。◆index:调用者数组本次调用的下标。◆array:调用者数组的引用。但reduce函数例外,其参数函数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论