当前位置: 首页 > 图文教程 > 网络编程 > Javascript > javascript实例教程(18) 数组

Javascript
javaScript 数值型和字符串型之间的转换
从父页面读取和操作iframe中内容方法
IE DOM实现存在的部分问题及解决方法
jqPlot Option配置对象详解
jquery JSON的解析方式
JavaScript 捕获窗口关闭事件
xml 封装与解析(javascript和C#中)
JavaScript 设计模式学习 Singleton
JavaScript 设计模式学习 Factory
javascript CSS画图之基础篇
JavaScript 获取事件对象的注意点
JavaScript Konami Code 实现代码
Google Map API更新实现用户自定义标注坐标
JavaScript this 深入理解
javascript EXCEL 操作类代码
window.parent调用父框架时 ie跟火狐不兼容问题
关于取不到由location.href提交而来的上级页面地址的解决办法
JS input 数字验证代码
网页全屏显示代码说明分析
JS 学习笔记 防止发生命名冲突

Javascript 中的 javascript实例教程(18) 数组


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-04   浏览: 226 ::
收藏到网摘: n/a

  使用Javascript数组

在JavaScript 1.0中构造器只存在Date对象和用户定义的对象。你可能期望有个数组构造器,但是一直没能实现,直到JavaScript 1.1的出现,你的期望成为了现实。我们可以如下来定义用户对象:

function blankArray(n) {

for (var i=0; i < n; i++)

this[i] = null;

this.length = n;

}

blankArray函数创建了一个数组,这个数组中有n个空白项。下面再给出使用这个构造器的例子:

var myArray = new blankArray(3);

myArray[0] = "hello";

myArray[1] = "world";

myArray[2] = "!";

如果你对其它编程语言(如C语言)有些经验的话,你就会直到数组的索引是从0开始的而不是从1开始的。因此在上面的例子中数组索引是从0到2的,故这个数组的长度为3。

以下的代码是更为高级的数组构造器。它使用了'arguments'属性来对数组赋值而不只是创建一个空数组元素,这个属性对于所有的函数都是存在的。虽然没有给定任何的参数,传递的数值仍然可以通过arguments数组来进行访问。具体代码如下:

function makeArray() {

for (var i=0; i < arguments.length; i++)

this[i] = arguments[i];

this.length = arguments.length;

}

而构造器的调用可以是这样的:

var myArray = new makeArray("hello", "world", "!");

在JavaScript 1.1中,创建数组构造器结合了blankArray和makeArray的特定。如下的一个调用:

var myArray = new Array(3); // requires JS 1.1

这个调用创建了一个空白数组(其长度为3)作为上面示范的blankArray构造器。而在Netscape中称为'dense array',因为每一个元素都有一个数值,可以如下来创建:

var myArray = new Array(value1, value2, value3); // JS 1.1
既然你对构造器和对象属性比较熟悉了,我们可以进一步举些例子。如果你是使用JavaScript 1.1或者更高版本,你可以使用数组构造器。否则你使用makeArray对象更为合适些。 var workPeople = new Array(

new Person("Thomas", 25, "green"),

new Person("Richard", 35, "blue"),

new Person("Harold", 30, "chartreuse")

);

workPeople是一个拥有三个Person对象的数组。每一个Person都有name(名字)、age(年龄)、colour(肤色)以及birthYear(出生年份)属性。

以下再给出一个实例来使用我们上面所学到的。这里还要提醒一下,Person代码块和workPeople数组必须包括到相同的SCRIPT标签中或者网页的其它地方。

<SCRIPT language="JavaScript">

<!-- Hide from older browsers


function whoIsOldest(pArray) {

var pOldest = pArray[0]; // 数组中的第一个Person

for (var i=1; i < pArray.length; i++) // 对每个附加的Person循环

if (pArray[i].isOlder(pOldest)) // 如果它们比较老

pOldest = pArray[i]; // 将它们设置为最老

return pOldest;

}

var senior = whoIsOldest(workPeople);

document.write("The oldest person is " + senior.name + "<br>" + senior);


// Stop hiding -->

</SCRIPT>

上面例子的输出为:

The oldest person is Richard

Richard was born in 1963

and is 35 years old.

从whoIsOldest函数返回的数值是一个Person对象,它带有对象所有的属性和方法。这是为什么可以引用名字属性和变量printPerson()方法(称为senior)的原因。

WhoIsOldest函数的另外一些特性为:

a.处理任何的People的数组。

b.处理任何对象类型的数组,这个数组有一个isOlder()方法。

如果不是使用JavaScript,换成其它类型的编程语言,你就不得不指定函数输入是一个People的数组,而在JavaScript就不用了。这正是JavaScript的一个优点。