陣列宣告
當在 JScript 中具有所有的資料時,變數可以儲存陣列。 型別附註可以指定變數必須含有陣列物件或型別陣列,但是不提供初始陣列。 如果要在變數中儲存陣列,您必須「宣告」一個陣列並設定到該變數。
宣告 JScript 陣列物件會建立新的 Array 物件,而宣告型別陣列則會保留一個足以儲存陣列每個元素的記憶體區段。 使用 new 運算子來明確地建構一個新陣列或使用陣列常值,都可以宣告這兩種陣列型別。
使用 new 運算子的陣列宣告
若要宣告新的 JScript Array 物件,可以使用具 Array 建構函式的 new 運算子。 因為您可以動態地將成員加入到 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 運算子也可以宣告型別陣列。 因為型別陣列無法接受動態加入的元素,宣告必須指定陣列的大小。 型別陣列的建構函式在陣列大小的周圍是用方括弧,而不是括號。 例如,以下程式碼宣告一個有五個整數的陣列。
var i1 : int[] = new int[5];
new 運算子也可以宣告多維陣列。 以下範例宣告一個 3 x 4 x 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]];
陣列常值無法初始化多維型別陣列。