数组声明
更新:2007 年 11 月
变量可以存储数组,与存储 JScript 中的所有其他数据一样。类型批注可以指定变量必须包含一个数组对象或者类型化数组,但是它不提供初始数组。若要在变量中存储数组,必须“声明”一个数组并将它赋给该变量。
声明 JScript 数组对象就会创建一个新的 Array 对象;而声明类型化数组则会保留一段足以存储每个数组元素的内存。这两种类型的数组都可以通过以下两种方式来声明:使用 new 运算符显式构造一个新的数组或者使用数组常值。
使用 new 运算符声明数组
若要声明新的 JScript Array 对象,可以将 new 运算符和 Array 构造函数一起使用。因为可以将成员动态地添加到 JScript 数组中,所以无须指定数组的初始大小。在本例中,将长度为零的数组赋给 a1。
var a1 = new Array();
若要给用 Array 构造函数创建的数组赋予初始长度,请将一个整数传递给数组构造函数。数组长度必须为零或正数。以下代码将长度为 10 的数组赋给 a2。
var a2 = new Array(10);
如果将多个参数或单个非数值参数传递给 Array 构造函数,则生成的数组将所有的参数包含为数组元素。例如,以下代码创建一个数组,其中元素 0 是数字 10,元素 1 是字符串“Hello”,而元素 2 则是当前日期。
var a3 = new Array(10, "Hello", Date());
new 运算符也可以声明类型化数组。因为类型化数组不能接受动态添加的元素,所以声明必须指定数组的大小。类型化数组的构造函数在数组大小的两边使用方括号,而不是使用圆括号。例如,以下代码声明包含 5 个整数的数组。
var i1 : int[] = new int[5];
new 运算符也可以声明多维数组。下面的示例声明一个 3×4×5 的整数数组。
var i2 : int[,,] = new int[3,4,5];
当声明嵌套的数组时,必须先声明基数组,然后声明子数组;不能同时声明这两种数组。这为确定子数组大小提供了更大的灵活性。在本例中,第一个子数组的长度为 1,第二个子数组的长度为 2,依此类推。
// First, declare a typed array of type int[], and initialize it.
var i3 : int[][] = new (int[])[4];
// Second, initialize the subarrays.
for(var i=0; i<4; i++)
i3[i] = new int[i+1];
使用数组常值声明数组
另一种同时声明和初始化数组的方法是使用数组常值。数组常值表示一个 JScript Array。因为 JScript 数组与类型化数组交互操作,所以也可以使用常值初始化类型化数组。有关更多信息,请参见数组数据。
数组常值可以方便地初始化一维数组。请注意,当给类型化数组赋值时,编译器尝试将数组常值中的数据转换为正确的类型。在本例中,将数组常值赋给 JScript 数组和类型化数组。
var al1 : Array = [1,2,"3"];
var il1 : int[] = [1,2,"3"];
数组常值也可以初始化嵌套的数组。在下面的示例中,用包含两个整数数组的数组初始化 JScript 数组和类型化数组。
var al1 : Array = [[1,2,3],[4,5,6]];
var il1 : int[][] = [[1,2,3],[4,5,6]];
数组常值不能初始化多维类型化数组。