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

Javascript
javascript:以前写的xmlhttp池,代码
javascript firefox兼容ie的dom方法脚本
常用的javascript function代码
javascript Discuz代码中的msn聊天小功能
js 简单类代码
分离式javascript取当前element值的代码
javascript document.images实例
javascript 调用其他页面的js函数或变量的脚本
javascript一点特殊用法
js中cookie的使用详细分析
javascript实现通过拼音首字母快速选择下拉列表
javascript解析xml字符串的函数
用javascript和css模拟select的脚本
javascript操作select参考代码
javascript String 的扩展方法集合
javascript数组的扩展实现代码集合
宝儿的zQuery库选择器简单原型
超级经典一套鼠标控制左右滚动图片带自动翻滚
javascript关键字加亮加连接
JavaScript 应用类库代码

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-04   浏览: 303 ::
收藏到网摘: 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的一个优点。