【php精品源码栏目提醒】:网学会员为广大网友收集整理了,Javascript数组_Array_操作整理 - 其它资料,希望对大家有所帮助!
Javascript 数组操作整理 Array 对象属性属性 描述 FF IEconstructor 返回对创建此对象的数组函数的引用。
1 4index 1 4input 1 4length 设置或返回数组中元素的数目。
1 4prototype 使您有能力向对象添加属性和方法。
1 41.1 length 说明:Length 属性表示数组的长度,即其中元素的个数。
因为数组的索引总是由 0 开始, 0 所以一个数组的上下限分别是: 和 length-1。
和其他大多数语言不同的是,JavaScript数组的 length 属性是可变的,这一点需要特别注意。
当 length 属性被设置得更大时,整个数组的状态事实上不会发生变化, 当 仅仅是 length 属性变大; length 属性被设置得比原来小时,则原先数组中索引大于或等于 length 的元素的值全部被丢失。
下面是演示改变 length 属性的例子: var arr122353259876545676//定义了一个包含 10 个数字的数组 alertarr.length //显示数组的长度 10 arr.length12 //增大数组的长度 alertarr.length //显示数组的长度已经变为 12 alertarr8 //显示第 9 个元素的值,为 56 arr.length5 //将数组的长度减少到 5,索引等于或超过 5 的元素被丢弃 alertarr8 //显示第 9 个元素已经变为quotundefinedquot arr.length10 //将数组长度恢复为 10 alertarr8 //虽然长度被恢复为 10,但第 9 个元素却无法收回,显示quotundefinedquot 但 由上面的代码我们可以清楚的看到 length 属性的性质。
length 对象不仅可以显式的设置,它也有可能被隐式修改。
JavaScript 中可以使用一个未声明过的变量,同样,也可以使用一个未定义的数组元素(指索引超过或等于 length 的元素),这时,length 属性的值将被设置为所使用元素索引的值加 1。
例如下面的代码:var arr122353259876545676//定义了一个包含 10 个数字的数组alertarr.length// 显示 10arr1534alertarr.length//显示 16 代码中同样是先定义了一个包含 10 个数字的数组,通过 alert 语句可以看出其长度为10。
随后使用了索引为 15 的元素,将其赋值为 15,即 arr1534,这时再用 alert 语句输出数组的长度,得到的是 16。
无论如何,对于习惯于强类型编程的开发人员来说,这是一个很令人惊讶的特性。
事实上,使用 new Array形式创建的数组,其初始长度就是为 0,正是对其中未定义元素的操作,才使数组的长度发生变化。
由上面的介绍可以看到,length 属性是如此的神奇,利用它可以方便的增加或者减少数组的容量。
因此对 length 属性的深入了解,有助于在开发过程中灵活运用。
1.2 prototype 说明:prototype 是在 IE 4 及其以后版本引入的一个针对于某一类的对象的方法,而且特殊的地方便在于:它是一个给类的对象添加方法的方法!这一点可能听起来会有点乱,别急,下面我便通过实例对这一特殊的方法作已下讲解: 首先,我们要先了解一下类的概念,JavaScript 本身是一种面向对象的语言,它所涉及的元素根据其属性的不同都依附于某一个特定的类。
我们所常见的类包括:数组变量Array、逻辑变量 Boolean、日期变量Date、结构变量Function、数值变量Number、对象变量Object、字符串变量 String 等,而相关的类的方法,也是程序员经常用到的 ,(在这里要区分一下类的注意和属性发方法)例如数组的 push 方法、日期的 get 系列方法、字符串的 split 方法等等, 但是在实际的编程过程中不知道有没有感觉到现有方法的不足?prototype 方法应运而生!下面,将通过实例由浅入深讲解 prototype 的具体使用方法:1、最简单的例子,了解 prototype:1 Number.addnum: 作用,数字相加 实现方法: Number.prototype.add functionnumreturnthisnum 试验:alert3.add15 -gt 显示 182 Boolean.rev: 作用,布尔变量取反 实现方法: Boolean.prototype.rev functionreturnthis 试验:alerttrue.rev -gt 显示 false是不是很简单?这一节仅仅是告诉读者又这么一种方法,这种方法是这样运用的。
2、已有方法的实现和增强,初识 prototype:1 Array.pushnew_element 作用:在数组末尾加入一个新的元素实现方法:Array.prototype.push functionnew_element thisthis.lengthnew_element return this.length让我们进一步来增强他,让他可以一次增加多个元素!实现方法: Array.prototype.pushPro functionarguments var currentLength this.length for var i 0 i lt arguments.length i thiscurrentLength i argumentsi return this.length 2javascript 中无法通过一个索引去移除一个无素.通过对 ARRAY 的扩展.实现了对javascript Array 对象通过索引移除数组中的一个元素.让我们来实现他!实现方法:Array.prototype.removefunctionindex ifisNaNindex index gtthis.lengthreturn false forvar i0n0iltthis.lengthi ifthisithisindex thisnthisi this.length-13 String.length 作用:这实际上是 String 类的一个属性,但是由于 JavaScript 将全角、半角均视为是一个字符,在一些实际运用中可能会造成一定的问题,现在我们通过 prototype 来弥补这部不足。
实现方法:String.prototype.cnLength function var arrthis.match/x00-xff/ig return this.lengtharrnull0:arr.length试验:alertquotEaseWe 空间 Spacesquot.cnLength -gt 显示 16 这里用到了一些正则表达式的方法和全角字符的编码原理,由于属于另两个比较大的类别,本文不加说明,请参考相关材料。
3、新功能的实现,深入 prototype:在实际编程中所用到的肯定不只是已有方法的增强,更多的实行的功能的要求,下面我就举两个用 prototype 解决实际问题的例子:1 String.left 问题:用过 vb 的应该都知道 left 函数,从字符串左边取 n 个字符,但是不足是将全角、半角均视为是一个字符,造成在中英文混排的版面中不能截取等长的字符串作用:从字符串左边截取 n 个字符,并支持全角半角字符的区分实现方法:String.prototype.left functionnummode if/d/.testnumreturnthis var str this.substr0num ifmode return str var n str.Tlength - str.length num num - parseIntn/2 return this.substr0num 试验: alertquotEaseWe 空间 Spacesquot.left8 -gt 显示 EaseWe 空间 alertquotEaseWe 空间 Spacesquot.left8true -gt 显示 EaseWe 空 本方法用到了上面所提到的 String.Tlength方法,自定义方法之间也能组合出一些不错的新方法呀!2 Date.DayDiff 作用:计算出两个日期型变量的间隔时间(年、月、日、周)实现方法:Date.prototype.DayDiff functioncDatemode try cDate.getYear catche return0 var base 6060241000 var result Math.absthis - cDate switchmode case quotyquot: result/base365 break case quotmquot: result/base365/12 break case quotwquot: result/base7 break default: result/base break returnMath.floorresult试验:alertnew Date.DayDiffnew Date200201 -gt 显示 329alertnew Date.DayDiffnew Date200201quotmquot -gt 显示 10当然,也可以进一步扩充,得出响应的小时、分钟,甚至是秒。
3 Number.fact 作用:某一数字的阶乘实现方法:Number.prototype.factfunction var num Math.floorthis ifnumlt0return NaN ifnum0 num1 return 1 else return numnum-1.fact试验:alert
上一篇:
网站设计与Web应用开发技术习题答案
下一篇:
管理硕士论文题目(教授推荐150篇)