javascript实例教程(18) 数组

xfqmoyoyo2008

xfqmoyoyo2008

2016-01-29 11:29

javascript实例教程(18) 数组,&#106avascript实例教程(18) 数组
  使用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的一个优点。 
展开更多 50%)
分享

猜你喜欢

javascript实例教程(18) 数组

电脑网络
javascript实例教程(18) 数组

javascript实例教程(6) 利用javascript进行密码保护

电脑网络
javascript实例教程(6) 利用javascript进行密码保护

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

javascript实例教程(15) 日期函数

电脑网络
javascript实例教程(15) 日期函数

javascript实例教程(20) OLE Automation(2)

电脑网络
javascript实例教程(20) OLE Automation(2)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

javascript实例教程(20) OLE Automation(3)

电脑网络
javascript实例教程(20) OLE Automation(3)

javascript实例教程(13) 鼠标触发窗口

电脑网络
javascript实例教程(13) 鼠标触发窗口

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

《神之刃》实用技巧新手攻略 训练一定要用特训

《神之刃》实用技巧新手攻略 训练一定要用特训

javascript实例教程(7) 利用javascript基于浏览器类型的重定向

javascript实例教程(7) 利用javascript基于浏览器类型的重定向
下拉加载更多内容 ↓