Array 物件
更新:2007 年 11 月
對任何資料型別的 expando 陣列提供支援。Array 建構函式 (Constructor) 有三種形式。
function Array( [size : int] ) function Array( [... varargs : Object[]] ) function Array( [array : System.Array )
引數
size
選擇項。陣列的大小。由於陣列是以零起始,所以建立元素的索引是從零到 size -1。varargs
選擇項。具型別陣列,包含所有傳入建構函式的參數。這些參數是用來做為陣列的第一個元素。array
選擇項。複製到建構陣列的陣列。
備註
如果只有一個引數傳入 Array 建構函式而且該引數是數字,則該引數必須是不帶正負號的 32 位元整數 (任何小於約四十億的整數)。傳入值是陣列的大小。如果值是小於零或非整數的數字,則會發生執行階段錯誤。
System.Array 資料型別的變數可以傳入 Array 建構函式。這將產生一個 JScript 陣列,它是輸入陣列的複本。System.Array 只能具有一個維度 (Dimension)。
如果只有一個值傳入 Array 建構函式而且它不是數字或陣列,則陣列的 length 屬性會設為 1,而且陣列第一個元素 (元素 0) 的值會成為單一的傳入引數。如果有許多引數傳入建構函式,則陣列的長度會設為引數的個數,而且這些引數會成為新陣列裡的第一個元素。
請注意 JScript 陣列是稀疏陣列;也就是說,雖然您可以配置具有許多元素的陣列,但是只有實際包含資料的元素會存在。這會減少陣列所需要的記憶體量。
Array 物件與 System.Array 資料型別相互操作。因此,Array 物件可以呼叫 System.Array 資料型別的方法和屬性,而 System.Array 資料型別可以呼叫 Array 物件的方法和屬性。更甚者,接受 System.Array 資料型別的函式可以接受 Array 物件,反之亦然。如需詳細資訊,請參閱 Array 成員。
當 Array 物件傳入接受 System.Array 的函式或是從 Array 物件呼叫 System.Array 方法時,會複製 Array 的內容。因此,原始 Array 物件不能由 System.Array 方法修改,或傳遞給接受 System.Array 的函式加以修改。只有不具破壞性的 Array 方法可以在 System.Array 上呼叫。
秘訣 |
---|
當您想要一個泛型堆疊或項目清單,且效能不是最重要的考量時,Array 物件就能提供便利的方法。在其他所有 Context 中,應該要使用具型別陣列資料型別。具型別陣列擁有許多與 Array 物件相同的功能,也提供型別安全 (Type Safety)、效能改善,並且與其他語言有較好的互動。 |
注意事項: |
---|
在 JScript 內的 Array 物件,可以與 .NET Framework System.Array 資料型別相互操作。但是其他 Common Language Specification (CLS) 語言無法使用 Array 物件,因為只有 JScript 提供這個物件;它不是繼承自 .NET Framework 型別。因此,當您為符合 CLS 標準方法的參數和傳回型別加註型別時,請務必使用 System.Array 資料型別而不要使用 Array 物件。但是,您可以使用 Array 物件,為參數或傳回型別 (Return Type) 以外的識別項加註型別。如需詳細資訊,請參閱撰寫符合 CLS 標準的程式碼。 |
範例
陣列的個別元素可以使用 [ ] 標記法來存取。例如:
var my_array = new Array();
for (var i = 0; i < 10; i++) {
my_array[i] = i;
}
var x = my_array[4];
因為 Microsoft JScript 中的陣列都是以零起始,所以上述範例裡的最後一個陳述式會存取陣列的第五個元素。此元素包含值 4。