




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
创建数组:var arr:Array = new Array(); /默认元素值为undefinedvar arr:Array = new Array(3); /创建一个包含3个元素的数组。var arr:Array = new Array(1, 2, 3); /直接给数组定义元素var arr:Array = ;var arr:Array = 1, 2, 3;var arr:Array = 3; /并不是定义3个元素,而是将3作为数据放到数组中获得数组元素:arr0:第一个元素,如果下标超出范围,返回 undefinedarr.length:数字的长度插入元素: push():将数据添加到数组的尾部,push(flex) unshift():将数据添加到数组队顶部,unshift(flex) splice(startIndex, deleteCount, .values):把数据插入到数组的指定位置,startIndex:操作的下标,deleteCount:要删除的元素个数,.values:要添加的若干数据。 删除元素: pop():删除数组的最后一个元素 shift():删除第一个元素 splice(startIndex, deleteCount, .values):删除任意位置的元素,从startIndex开始删除deleteCount个元素,并添加元素 values。 排序: sort:主要对简单数据结构的数组进行排序 sortOn:对复杂数据结构的数组排序 reverse:将现有顺序逆向 排序规则:排序规则可同时使用如:sort(Array.CASEINSENSITIVE | Array.DESCENDING) Array.CASEINSENSITIVE:不区分大小写 Array.DESCENDING:降序排序 Array.UNIQUESORT:如果元素都是唯一,不存在重复就进行排序,否则不排序 Array.RETURNINDEXEDARRAY:将排序后的元素的新顺序返回,但不修改原来的数组 Array.NUMERIC:按照数字大小排序 复杂排序:arr.sortOn(age, Array.NUMERIC); /age为元素的属性,将使用age来排序多维数组:var arr:Array = new Array();arr:push(1,2);访问:arr001、数组的创建var arrayObj = new Array();/创建一个数组var arrayObj = new Array(size);/创建一个数组并指定长度,注意不是上限,是长度var arrayObj = new Array(element0, element1, ., elementN);创建一个数组并赋值 要说明的是,虽然第二种方法创建数组指定了长度,但实际上所有情况下数组都是变长的,也就是说即使指定了长度为5,仍然可以将元素存储在规定长度以外的,注意:这时长度会随之改变。2、数组的元素的访问var testGetArrValue=arrayObj1; /获取数组的元素值arrayObj1= 这是新值; /给数组元素赋予新的值3、数组元素的添加arrayObj. push(item1 item2 . . . itemN );/ 将一个或多个新元素添加到数组结尾,并返回数组新长度arrayObj.unshift(item1 item2 . . . itemN );/ 将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度arrayObj.splice(insertPos,0,item1, item2, . . . ,itemN);/将一个或多个新元素插入到数组的指定位置,插入位置的元素自动后移,返回。4、数组元素的删除arrayObj.pop(); /移除最后一个元素并返回该元素值arrayObj.shift(); /移除最前一个元素并返回该元素值,数组中元素自动前移arrayObj.splice(deletePos,deleteCount); /删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返回所移除的元素5、数组的截取和合并arrayObj.slice(start, end); /以数组的形式返回数组的一部分,注意不包括 end 对应的元素,如果省略 end 将复制 start 之后的所有元素arrayObj.concat(item1, item2, . . . ,itemN); /将多个数组(也可以是字符串,或者是数组和字符串的混合)连接为一个数组,返回连接好的新的数组6、数组的拷贝arrayObj.slice(0); /返回数组的拷贝数组,注意是一个新的数组,不是指向arrayObj.concat(); /返回数组的拷贝数组,注意是一个新的数组,不是指向7、数组元素的排序arrayObj.reverse(); /反转元素(最前的排到最后、最后的排到最前),返回数组地址arrayObj.sort(); /对数组元素排序,返回数组地址8、数组元素的字符串化arrayObj.join(separator); /返回字符串,这个字符串将数组的每一个元素值连接在一起,中间用 separator 隔开。toLocaleString 、toString 、valueOf:可以看作是join的特殊用法,不常用二、数组对象的3个属性1、length 属性 Length属性表示数组的长度,即其中元素的个数。因为数组的索引总是由0开始,所以一个数组的上下限分别是:0和length-1。和其他大多数语言不同的是,JavaScript数组的length属性是可变的,这一点需要特别注意。当length属性被设置得更大时,整个数组的状态事实上不会发生变化,仅仅是length属性变大;当length属性被设置得比原来小时,则原先数组中索引大于或等于length的元素的值全部被丢失。下面是演示改变length属性的例子:var arr=12,23,5,3,25,98,76,54,56,76;/定义了一个包含10个数字的数组alert(arr.length); /显示数组的长度10arr.length=12; /增大数组的长度alert(arr.length); /显示数组的长度已经变为12alert(arr8); /显示第9个元素的值,为56arr.length=5; /将数组的长度减少到5,索引等于或超过5的元素被丢弃alert(arr8); /显示第9个元素已经变为undefinedarr.length=10; /将数组长度恢复为10alert(arr8); /虽然长度被恢复为10,但第9个元素却无法收回,显示undefined 由上面的代码我们可以清楚的看到length属性的性质。但length对象不仅可以显式的设置,它也有可能被隐式修改。JavaScript中可以使用一个未声明过的变量,同样,也可以使用一个未定义的数组元素(指索引超过或等于length的元素),这时,length属性的值将被设置为所使用元素索引的值加1。例如下面的代码:var arr=12,23,5,3,25,98,76,54,56,76;alert(arr.length);arr15=34;alert(arr.length); 代码中同样是先定义了一个包含10个数字的数组,通过alert语句可以看出其长度为10。随后使用了索引为15的元素,将其赋值为15,即arr15=34,这时再用alert语句输出数组的长度,得到的是16。无论如何,对于习惯于强类型编程的开发人员来说,这是一个很令人惊讶的特性。事实上,使用new Array()形式创建的数组,其初始长度就是为0,正是对其中未定义元素的操作,才使数组的长度发生变化。 由上面的介绍可以看到,length属性是如此的神奇,利用它可以方便的增加或者减少数组的容量。因此对length属性的深入了解,有助于在开发过程中灵活运用。2、prototype 属性返回对象类型原型的引用。prototype 属性是 object 共有的。objectNtotypeobjectName 参数是object对象的名称。说明:用 prototype 属性提供对象的类的一组基本功能。 对象的新实例“继承”赋予该对象原型的操作。 对于数组对象,以以下例子说明prototype 属性的用途。 给数组对象添加返回数组中最大元素值的方法。要完成这一点,声明一个函数,将它加入 Atotype, 并使用它。function array_max( ) var i, max = this0; for (i = 1; i this.length; i+) if (max thisi) max = thisi; return max;Atotype.max = array_max;var x = new Array(1, 2, 3, 4, 5, 6);var y = x.max( );该代码执行后,y 保存数组 x 中的最大值,或说 6。3、constructor 属性表示创建对象的函数。object.constructor /object是对象或函数的名称。说明:constructor 属性是所有具有 prototype 的对象的成员。它们包括除 Global 和 Math 对象以外的所有 JScript 固有对象。constructor 属性保存了对构造特定对象实例的函数的引用。例如:x = new String(Hi);if (x.constructor = String) / 进行处理(条件为真)。或function MyFunc / 函数体。y = new MyFunc;if (y.constructor = MyFunc) / 进行处理(条件为真)。对于数组来说:y = new Array();Array提供了多种方法插入和删除元素文章分类:Flash编程 Array提供了多种方法插入和删除元素。通过这些方法,可以快速按需要操作Array中的元素。Array类提供了一对方法push和pop方法,使得Array类实现了栈的结构。push方法可以将元素插入到Array的尾部。pop方法删除Array最尾部的元素。这样就实现了一个先进后出的栈结构。实现代码如下所示。 var flexArray:Array=new Array(); flexArray.push(“Adobe”); /添加元素“Adobe”到Array的尾部 trace(flexArray); /输出“Adobe” flexArray.push(“Macromedia”); /添加元素“Macromedia”到Array的尾部 trace(flexArray); /输出“Adobe,Macromeida” flexArray.push(“Flex”); /添加元素“Flex”到Array的尾部 trace(flexArray); /输出“Adobe,Macromeida,Flex” flexArray.pop(); /删除Array尾部元素 trace(flexArray); /输出“Adobe,Macromeida” flexArray.pop(); /删除Array尾部元素 trace(flexArray); /输出“Adobe” flexArray.pop(); /删除Array尾部元素 trace(flexArray); /输出“” 由上面的代码可以看出,通过push和pop方法可以用一个Array类的一个实例构建一个栈的数据结构。通过这样的数据结构,可以实现更为复杂的算法。 Array类也提供了一组shift和unshift的方法向Array的实例添加元素和删除元素。与push与pop不同,unshift添加方式是在Array实例的头部添加元素。而shift方法是从Array类实例的头部开始删除元素。如下代码所示。 var flexArray:Array=new Array(); flexArray. unshift (“Adobe”); /添加元素“Adobe”到Array的头部 trace(flexArray); /输出“Adobe” flexArray. unshift (“Macromedia”); /添加元素“Macromedia”到Array的头部 trace(flexArray); /输出“Macromeida, Adobe” flexArray. unshift (“Flex”); /添加元素“Flex”到Array的头部 trace(flexArray); /输出“Flex, Macromeida, Adobe” flexArray. shift (); /删除Array头部元素 trace(flexArray); /输出“Macromeida, Adobe” flexArray. shift (); /删除Array头部元素 trace(flexArray); /输出“Adobe” flexArray. shift (); /删除Array头部元素 trace(flexArray); /输出“” 除了上面提到的这几种顺序的插入和删除Array元素的方法外,Array类还提供了一个方法splice用来通过指定位置添加或者删除元素。splice方法使用的方式如下代码所示。 var flexArray:Array=“Adobe”,”Flex”; flexArray.splice(1,0,”Maromedia”); /删除从索引位置1开始的0个元素,添加”Maromedia”到实例中 trace(flexArray); /输出“Adobe,Macromeida,Flex” flexArray.splice(1,1); /删除从索引位置1开始的1个元素 trace(flexArray); /输出“Adobe,Flex” flex
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖南省长沙市浏阳市2025年三年级数学第二学期期末经典试题含解析
- 湛江市大成中学高一上学期物理期中测试题
- 2025简易场地租赁合同范本
- 食管癌的护理
- 内科护理学课件
- 2025建筑外墙施工合同范本
- 2025某地产开发项目施工合同
- 2025年芦湾村原下冲海堤开东部湾中部地块租赁合同范本
- 2025幼儿园教师聘用合同模板
- 2025年广东省职工劳动合同书模板
- 活动物料清单
- 精细化工产品公司企业经营战略方案
- 缺血缺氧性脑病详解课件
- 自动打铃控制器plc课程设计
- 最新司法鉴定程序通则课件来源于司法部司法鉴定局
- 北师大版一年级英语下册期中测试卷
- 冠状动脉CT解剖详解
- 档案学概论重点知识梳理
- 地下连续墙钢筋笼起重吊装专项施工方案
- 单值和移动极差X-MR控制图
- 进口产品委托代理合同协议书范本
评论
0/150
提交评论