配列の宣言
更新 : 2007 年 11 月
JScript の他のデータと同様に、配列も変数に格納できます。型の注釈を指定すると、変数が配列オブジェクトまたは型指定された配列を含む必要があることを指定できますが、初期配列は提供されません。変数に配列を格納するには、配列を "宣言" して、これを変数に代入する必要があります。
JScript 配列オブジェクトを宣言すると、新しい Array オブジェクトが作成されます。また、型指定された配列を宣言すると、配列のすべての要素を格納できるだけのメモリが予約されます。どちらの配列も、new 演算子を使用して明示的に新しい配列を作成するか、または配列リテラルを使用することによって宣言できます。
new 演算子による配列の宣言
新しい JScript Array オブジェクトを宣言するには、new 演算子と Array コンストラクタを使用します。JScript 配列には動的にメンバを追加できるため、配列の初期サイズを指定する必要はありません。次の例では、a1 に長さ 0 の配列が代入されます。
var a1 = new Array();
Array コンストラクタを使用して作成した配列に、長さの初期値を割り当てるには、配列のコンストラクタに整数値を渡します。配列の長さは 0 か正の整数である必要があります。次のコードは、a2 に長さが 10 の配列を代入しています。
var a2 = new Array(10);
Array コンストラクタに複数のパラメータを渡したり、数値以外のパラメータを 1 つ渡した場合、作成される配列の要素にすべてのパラメータが含まれます。たとえば、次のコードで作成される配列では、要素 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 番目のサブ配列は長さが 1、2 番目のサブ配列は長さが 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 配列は型指定された配列と相互運用されるため、型指定された配列もリテラルを使用して初期化できます。詳細については、「配列データ」を参照してください。
配列リテラルを使用すると、1 次元配列を簡単に初期化できます。型指定された配列に配列リテラルを代入する場合、コンパイラは配列リテラルから正しい型にデータを変換しようとします。次の例では、リテラルの配列を JScript 配列と型指定された配列に代入します。
var al1 : Array = [1,2,"3"];
var il1 : int[] = [1,2,"3"];
配列リテラルは、配列の配列も初期化できます。次の例では、JScript 配列および型指定された配列の両方で、整数型の 2 つの配列から成る配列を初期化します。
var al1 : Array = [[1,2,3],[4,5,6]];
var il1 : int[][] = [[1,2,3],[4,5,6]];
配列リテラルでは、多次元の型指定された配列は初期化できません。