2.8.2 访问数组中的项目

我们可以使用变量名来访问一个简单变量的内容。例如,alert(lastName)打开一个警告框,该警告框带有变量lastName中存储的值。然而,因为数组可以存储多个值,我们不能只使用其名字来访问其中包含的项目。一个叫做索引的唯一编号表示了数组中每个项目的位置。要访问数组中的一个特定项目,我们使用项目的索引编号。例如,假设已经创建了一个数组,其中包含了星期几的缩写,并且我们想要打开一个警告框来显示第一个项目。可以这样编写代码:


var days=['Mon','Tues','Wed','Thurs','Fri','Sat','Sun'];

alert(days[0]);


这段代码打开一个其中显示'Mon'的警告框。数组是从0开始索引的,意味着数组中的第一项的索引值为0,第二项的索引值为1,换句话说,从项目在列表中的位置减去1就得到了其索引值,第5项的索引值是5—1,即4。当你刚开始编程时,从0开始索引确实容易令人混淆,因此,表2-4展示了(上面的例子中的)数组days是如何索引的、它包含的值以及如何访问每个值。

2.8.2 访问数组中的项目 - 图1

可以通过给索引位置赋一个新值来改变数组中一个项目的值。例如,要把一个新值放入数组days的第一个项目中,可以这样编写:


days[0]='Monday';


由于数组中的最后一项的索引编号总是比数组中的项目的总数小1,因此,要访问最后一项,只需要知道数组中有多少项目就可以了。这是一项容易的任务,因为每个数组都有一个length属性,它包含了数组中项目的总数。要访问length属性,可以在数组名称的后面添加一个点号,然后跟着length。例如,days.length返回数组days中包含的项目数(如果创建了一个不同的数组,例如playList,获得其长度的方法是:playList.length)。因此,可以使用简短的JavaScript代码来访问数组的最后一项所存储的值:


days[days.length-1]


上面的代码段说明了我们不一定必须为索引提供一个直接量数值(例如,days[0]中的0)。我们也可以提供一个返回有效数值的表达式:在这个例子中,days.length-1是一个简短的表达式,它首先获取days数组中项目的数目(在这个例子中是7),并且用它减去1。因此,在这个例子中,days[days.length-1]变成了days[6]。

还可以使用包含数值的一个变量来作为索引:


var i=0;

alert(days[i]);


上面代码的最后一行等价于alert(days[0]);。当在3.3节用到循环的时候,会发现这一技术特别有用。