技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  javascript实例教程(18) 数组     
  文章作者:未知  文章来源:水木森林  
  查看:345次  录入:管理员--2007-11-16  
  使用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的一个优点。
 
 
上一篇: javascript实例教程(17) 使用字符串函数    下一篇: javascript实例教程(19) 使用hotmetal(1)
  相关文档
struts用户和开发指南(前言之三) 11-17
java思路 开发易于移植的j2me游戏 11-17
java 操作二维数组实例 11-17
教您如何成为 ejb 专家详解系列连载之三 11-17
acme包中的以post方式发送数据的例子 11-17
java命令行简介 11-16
基于linux技术的sharp zaurus sl-5600 11-17
scriptengineminorversion 函数 11-16
jbuilder7与weblogic7整合开发之-开发实例 11-17
使用javaexcel api 往excel中插入图片 11-17
java 与 mysql 中文问题的处理 11-17
java基础:java异常处理的特殊情况分析 12-25
java web 三层架构配置&.. 11-17
weblogic树形结构的实现 11-17
用java 接口实现回调函数的等价功能 11-17
介绍jsp程序动态网站环境搭建的详细步骤 (1) 06-23
理解java应用服务器的七种武器 11-16
保护applet免遭窃取的小技巧 11-17
基于jsf技术的web应用开发研究 11-17
建立正则表达式 11-16
返回首页 | 关于我们 | J网章程 | JSP空间 | 免责声明 | 常见问题 | JSP空间操作手册

@2005-2012福建JSP技术网 版权所有 闽ICP备09012882号
技术电话:13616026886 谢宁松
邮箱:fjjsp @ vip.163.com 站长QQ,点击这里给我发消息