Array オブジェクト
すべてのデータ型の expando 配列をサポートする機能を提供します。 Array コンストラクターには、次の 3 つの形式があります。:
function Array( [size : int] )
function Array( [... varargs : Object[]] )
function Array( [array : System.Array )
引数
size
省略可能です。 配列のサイズ。 JScript の配列のインデックスは 0 から始まります。したがって、作成された要素のインデックスは 0 ~ (size - 1) となります。varargs
省略可能です。 コンストラクターに渡されたすべてのパラメーターを保持する、型指定された配列。 これらのパラメーターは、配列の最初の要素として使用されます。array
省略可能です。 構築される配列にコピーされる配列。
解説
Array オブジェクトのコンストラクターに渡される引数が 1 つだけで、その引数が数値である場合、その値は符号なしの 32 ビット整数 (約 40 億未満の任意の整数) であることが必要です。 渡された値は、配列のサイズに使用されます。 その値が 0 より小さいか、整数でない場合は、ランタイム エラーが発生します。
データ型 System.Array の変数は、Array コンストラクターに渡すことができます。 これにより、入力配列のコピーとなる JScript 配列が生成されます。 System.Array は、1 次元であることが必要です。
Array オブジェクトのコンストラクターに渡される値が 1 つだけで、それが数値または配列でない場合、配列の length プロパティは 1 に設定され、配列の最初の要素 (要素 0) の値は渡された引数の値になります。 複数の引数がコンストラクターに渡される場合は、配列の長さが引数の数に設定され、それらの引数が新規配列の最初の要素になります。
Script の配列は疎配列であり、1 つの配列に多数の要素を割り当てても、実際にデータを含む要素だけが存在するしくみになっています。 このため、配列が使用するメモリ量を抑えることができます。
Array オブジェクトは System.Array データ型と相互運用されます。 したがって、Array オブジェクトは System.Array データ型のメソッドとプロパティを呼び出すことができ、System.Array データ型は Array オブジェクトのメソッドとプロパティを呼び出すことができます。 また、Array オブジェクトは System.Array 型を受け取る関数で使用でき、その逆も可能です。 詳細については、「Array メンバー」を参照してください。
Array オブジェクトが System.Array を受け取る関数に渡されるとき、または System.Array メソッドが Array オブジェクトから呼び出されるときに、Array の内容がコピーされます。 したがって、System.Array メソッドを呼び出したり、このメソッドを System.Array を受け取る関数に渡すことで、元の Array オブジェクトを変更することはできません。 System.Array では、非破棄的な Array メソッドだけを呼び出せます。
ヒント
Array オブジェクトは、ジェネリック スタックや項目の一覧が必要な場合で、パフォーマンスが最優先でない場合に便利です。 それ以外の場合は、型指定された配列データ型を使用してください。 型指定された配列は、Array オブジェクトとほとんど同じ機能を持ち、タイプ セーフです。この配列を使用すると、パフォーマンスが向上し、他の言語とやり取りが簡単になります。
注意
JScript 内では、Array オブジェクトは .NET Framework の System.Array データ型と相互運用されます。 ただし、Array オブジェクトがサポートされるのは JScript だけです。このオブジェクトは .NET Framework 型から派生していないため、他の共通言語仕様 (CLS: Common Language Specification) 言語では使用できません。 したがって、CLS 準拠のメソッドのパラメーターと戻り値の型を型の注釈で指定する場合は、Array オブジェクトではなく System.Array 型を使用してください。 ただし、パラメーターや戻り値の型以外の識別子では、Array オブジェクトを使用して型の注釈を指定できます。 詳細については、「CLS 準拠コードの記述」を参照してください。
使用例
配列の各要素には、[ ] 表記を使用してアクセスできます。 次に例を示します。
var my_array = new Array();
for (var i = 0; i < 10; i++) {
my_array[i] = i;
}
var x = my_array[4];
Microsoft JScript では、配列のインデックスは 0 から始まります。したがって、上の例の最後のステートメントでは、配列内の 5 つ目の要素を取得しています。 その要素の値は 4 です。