Arraydeklaration
Aktualisiert: November 2007
Wie alle anderen Daten in JScript können Variablen auch Arrays speichern. Die Typanmerkung kann angeben, dass eine Variable ein Array-Objekt oder ein typisiertes Array enthalten muss, stellt jedoch kein Anfangsarray bereit. Um ein Array in einer Variablen zu speichern, müssen Sie ein Array deklarieren und es dieser Variablen zuweisen.
Durch Deklarieren eines JScript-Array-Objekts wird ein neues Array-Objekt erstellt, während durch Deklarieren eines typisierten Arrays ein Speicherabschnitt reserviert wird, der groß genug ist, um jedes Element des Arrays zu speichern. Beide Arraytypen können deklariert werden, indem entweder mit dem new-Operator ein neues Array explizit konstruiert wird, oder indem ein Arrayliteral verwendet wird.
Arraydeklaration mit dem new-Operator
Um ein neues JScript-Array-Objekt zu deklarieren, können Sie den new-Operator mit dem Array-Konstruktor verwenden. Da Sie Member dynamisch zu einem JScript-Array hinzufügen können, müssen Sie für das Array keine Anfangsgröße angeben. Im folgenden Beispiel wird a1 ein Array mit der Länge 0 (null) zugewiesen.
var a1 = new Array();
Um dem mit dem Array-Konstruktor erstellten Array eine Anfangslänge zuzuweisen, übergeben Sie eine ganze Zahl an den Arraykonstruktor. Die Arraylänge muss größer oder gleich 0 sein. Der folgende Code weist a2 ein Array mit der Länge 10 zu.
var a2 = new Array(10);
Wenn an den Array-Konstruktor mehr als ein Parameter oder ein einziger nicht numerischer Parameter übergeben wird, enthält das sich daraus ergebende Array alle Parameter als Arrayelemente. Der folgende Code erstellt z. B. ein Array, in dem Element 0 die Zahl 10 ist, Element 1 die Zeichenfolge "Hello" und Element 2 das aktuelle Datum ist.
var a3 = new Array(10, "Hello", Date());
Der new-Operator kann auch typisierte Arrays deklarieren. Da typisierte Arrays keine dynamisch hinzugefügten Elemente akzeptieren, muss die Deklaration die Größe des Arrays angeben. Der Konstruktor für typisierte Arrays verwendet eckige Klammern statt runde Klammern für die Arraygröße. Der folgende Code deklariert z. B. ein Array aus fünf ganzen Zahlen.
var i1 : int[] = new int[5];
Mit dem new-Operator können auch mehrdimensionale Arrays deklariert werden. Im folgenden Codebeispiel wird ein 3-mal-4-mal-5-Array aus ganzen Zahlen deklariert.
var i2 : int[,,] = new int[3,4,5];
Beim Deklarieren eines Arrays aus Arrays muss das Basisarray vor den Unterarrays deklariert werden. Basisarray und Unterarrays können nicht gleichzeitig deklariert werden. Dies gewährleistet Flexibilität beim Festlegen der Größen der Unterarrays. Im folgenden Beispiel hat das erste Unterarray die Länge 1, das zweite die Länge 2 usw.
// 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];
Arraydeklaration mit Arrayliteralen
Eine andere Möglichkeit, Arrays gleichzeitig zu deklarieren und zu initialisieren, besteht darin, Arrayliterale zu verwenden. Ein Arrayliteral stellt ein JScript-Array dar. Da JScript-Arrays jedoch mit typisierten Arrays zusammenarbeiten, können auch Literale zum Initialisieren von typisierten Arrays verwendet werden. Weitere Informationen hierzu finden Sie unter Arraydaten.
Arrayliterale können eindimensionale Arrays auf einfache Weise initialisieren. Beachten Sie, dass der Compiler versucht, die Daten aus dem Arrayliteral in den korrekten Datentyp zu konvertieren, wenn ein typisiertes Array zugewiesen ist. Im folgenden Beispiel wird ein Literalarray einem JScript-Array und einem typisierten Array zugewiesen.
var al1 : Array = [1,2,"3"];
var il1 : int[] = [1,2,"3"];
Arrayliterale können auch Arrays aus Arrays initialisieren. Im folgenden Beispiel initialisiert ein Array aus zwei Arrays mit ganzen Zahlen sowohl das JScript-Array als auch das typisierte Array.
var al1 : Array = [[1,2,3],[4,5,6]];
var il1 : int[][] = [[1,2,3],[4,5,6]];
Mehrdimensionale typisierte Arrays können nicht durch Arrayliterale initialisiert werden.