数组声明

变量可以存储数组,与存储 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]];

数组常值不能初始化多维类型化数组。

请参见

参考

new 运算符

概念

数组数据

JScript Array 对象

其他资源

JScript 数组