JScript 中可使用一些类型数组。以下信息解释如何使用其中的某些数组,以及如何为特定的应用程序选择适当的数组。
一维数组
下面的示例显示如何访问 addressBook 数组的第一个和最后一个元素。它假定脚本的另一部分定义 addressBook 并给其赋值。因为在 JScript 中数组的索引是从零开始的,所以数组的第一个元素的索引是零,而最后一个元素的索引是数组的长度减 1。
var firstAddress = addressBook[0]; var lastAddress = addressBook[addressBook.length-1];
嵌套的数组与多维数组
可以将由多个索引引用的数据存储在嵌套的数组或多维数组中。这两种类型的数组都具有独特的功能。
嵌套的数组可用于在其中每一子数组具有不同长度的应用程序。可以方便地对子数组进行重组,这对数组元素的排序很有帮助。日历就是一个典型的例子,其中 Year 数组存储 12 个 Month 数组,而每个 Month 数组存储适当天数的数据。
多维数组用于以下场合:声明时每个维中的数组的大小是已知的。从速度和内存占用情况来看,多维数组比嵌套数组的效率更高。多维数组必须是类型化数组。用于数学计算的矩阵就是一个典型的例子,其中数组大小是固定的并且从一开始便是已知的。
循环处理 JScript 数组元素
因为 JScript 数组是稀疏的,所以数组的第一个元素和最后一个元素之间可能有大量未定义的元素。这意味着,如果使用 for 循环访问数组元素,则必须检查每个元素是否为 undefined(未定义)。
所幸,JScript 提供了 for...in 循环,可以方便地使用此循环只访问 JScript 数组中已定义的元素。下面的示例定义了一个稀疏 JScript 数组,并使用 for 循环和 for...in 循环显示其元素。
var a : Array = new Array; a[5] = "first element"; a[100] = "middle element"; a[100000] = "last element"; print("Using a for loop. This is very inefficient.") for(var i = 0; i<a.length; i++) if(a[i]!=undefined) print("a[" + i + "] = " + a[i]); print("Using a for...in loop. This is much more efficient."); for(var i in a) print("a[" + i + "] = " + a[i]);
该程序的输出为:
Using a for loop. This is very inefficient. a[5] = first element a[100] = middle element a[100000] = last element Using a for...in loop. This is much more efficient. a[5] = first element a[100] = middle element a[100000] = last element