javascript使用数组
2010-09-14 13:19:49 来源:WEB开发网数组下标
javascript 中的数组是稀疏的。也就是说,如果一个数组具有三个元素,编号分别为 0、1 和 2,您就可以创建元素 50,而不必担心从 3 到 49 的参数。如果该数组有一个自动的 length 变量,该 length 变量被设为 51,而不是 4。当然您可以创建各元素的编号之间没有间隙的数组,不过没有必要这样做。实际上在 javascript 中,数组根本没有编号的下标。
在 javascript 中,对象和数组实质上是一样的。真正的差异不在于数据,而在于您引用数组的成员或对象的属性 和 方法的方式。
数组寻址
有两种方式来引用数组中的成员。一般说来,可以使用方括号来引用数组。方括号中是一个数字或一个值为非负整数的表达式 。下面的示例假定在脚本的其他地方已定义了entrynum 变量,且已赋值。
thelisting = addressbook[entrynum];
thefirstline = thelisting[1];
这种寻址方法与对象寻址的方法是等价的,不过在对象寻址中在圆点后必须使用实际的属性名。如果没有这样的属性,代码将产生一个错误。
数组寻址的第二种方式是制作一个包含编号属性的对象/数组,然后用一个循环产生这些编号。下面的示例将产生两个数组:一个代表名字,一个代表地址,名字和地址均来自 addressbook 中的一个列表。每一项包含四个属性。例如,从thelisting的 [name1] 到 [name4] 属性产生的thename实例可能包含 "g." "edward" "heatherington" "iv", 或 "george" "" "sand" ""。
thelisting = addressbook[entrynum];
for (i = 1; i < 4; i++) {
thename[i] = thelisting["name" + i];
theaddress[i] = thelisting["address" + i];
}
虽然这个特定的实例很短,并且可以很容易地使用 "."这种记法来表示(也就是按地址而不是按数组来对 thelisting、thename和 theaddress 寻址),但这并不总是可行的。有时特定的属性可能要在运行时才会存在,或者预先并不知道将是哪些项。例如,如果addressbook 数组不是编好号码的清单,而是按姓排列的,用户可能在正在运行该脚本时“随意”输入名称来查找人员。下面的实例假定在脚本的其他地方已提供了适当的函数定义。
thelisting = addressbook[getname()];
theindivlisting = thelisting[getfirstname()];
这是数组的关联寻址,也就是说,依靠完全任意的字符串来寻址。javascript 中的对象实际上就是关联数组。尽管可以(并且是频繁地〕使用 "."这种圆点寻址风格,但无论如何不是必需的。因为 javascript 对象的任何属性都可以使用数组标记法来寻址,因此 javascript 对象可以作为一个关联数组使用。
下面的代码创建并初始化数组的最常见格式:
var myarray = new array("athens", "belgrade", "cairo");
该数组的每个元素都是使用其元素编号来寻址的;在本例中是 0、1 或 2。使用 for...in 语句,该数组可以从 0 开始到 2 结束来进行遍历。例如:
for (key in myarray)
response.write("element value is " + myarray[key] + "<br>);
下面的代码创建并初始化一个包含三个元素的关联数组:
var myarray = {"a" : "athens", "b" : "belgrade", "c" : "cairo" };
在该数组中,可以使用字符串("a"、 "b" 或 "c") 来对元素寻址,而不是用数组元素的编号 (0、1 或 2)寻址。这样就可以以更直观的寻址方案来创建和使用数组。同样可以使用上面显示的 for...in 语句代码来遍历该数组。
Tags:javascript 使用 数组
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接