Sie sind hier � 549
Fortgeschrittene Objektkonstruktion
Der Array-Objektkonstruktor
Und jetzt ein weiterer interessanter JavaScript-eigener Objektkonstruktor: Array.
Bisher haben wir Arrays mithilfe eckiger Klammern erzeugt, z. B. [1, 2, 3]. Das geht
aber auch mit einem Konstruktor:
Hier erzeugen wir ein neues leeres Array-Objekt, dem wir jederzeit neue Elemente
hinzufügen können, wie hier:
Wir können aber auch Array-Objekte mit einer bestimmten Größe erzeugen. Dies ist
ein Array mit drei Elementen:
Hier haben wir ein Array der Länge 3 erstellt. Zu Beginn waren die drei Elemente in
oddNumbers nicht definiert. Erst später weisen wir ihnen ihre Werte zu. Auch dieses
Array kann jederzeit um neue Werte erweitert werden.
Bisher gab es wenige Unterschiede zum bekannten Vorgehen. Was Array-Objekte
interessant macht, sind ihre Methoden. Die sort-Methode kennen Sie ja bereits. Hier
noch ein paar weitere interessante Beispiele:
Auch dies ist nur die Spitze des Eisbergs. Werfen Sie einen Blick in JavaScript: Das
umfassende Referenzwerk, um den Array-Objektkonstruktor vollständig zu erforschen.
Das nötige Wissen, um ihn zu verstehen, haben Sie bereits.
Erzeugt ein leeres
Array der Länge 0.
Das sollte Ihnen bekannt vorkommen. Auf diese
Weise haben wir schon mehrmals Elemente zu
einem Array hinzugefügt.
var emptyArray = new Array();
var oddNumbers = new Array(3);
oddNumbers[0] = 1;
oddNumbers[1] = 3;
oddNumbers[2] = 5;
emptyArray[0] = 99;
oddNumbers.reverse();
var aString = oddNumbers.join(" - ");
var areAllOdd = oddNumbers.every(function(x) {
return ((x % 2) !== 0);
});
Wir erzeugen ein Array der
Länge 3 und füllen es danach
mit Werten.
Hiermit werden die Werte des Arrays umgekehrt (oddNumbers enthält jetzt
also 5, 3,
1
). Beachten Sie, dass hierbei das Original-Array verändert wird.
Die Methode join erzeugt aus den Werten in oddNumbers einen
String. Hierbei wird zwischen den Werten ein " - " eingefügt.
Der fertige String (“5 - 3 -
1
”) wird zurückgegeben.
Die every-Methode übernimmt eine Funktion und
überprüft für jeden Wert des Arrays, ob die
Funktion true oder false zurückgibt. Gibt die
Funktion für alle Elemente true zurück, ist das
Ergebnis der every-Methode ebenfalls true.
550 Kapitel 12
Zwei Wege, Arrays zu erstellen
Gut aufgepasst. Die Schreibweise mit eckigen Klammern, [ ], die Sie bisher
zum Erzeugen von Arrays benutzt haben, ist in Wirklichkeit nur eine Abkürzung
für die direkte Verwendung des Array-Konstruktors. Sehen Sie sich diese beiden
gleichwertigen Möglichkeiten, ein Array zu erstellen, einmal an:
Jetzt mal langsam. Bisher haben
wir Arrays vollkommen anders
erstellt.
var items = [];
var items = new Array();
var n = getNumberOfWidgetsFromDatabase();
var widgets = new Array(n);
for(var i=0; i < n; i++) {
widgets[i] = getDatabaseRecord(i);
}
Beide machen das Gleiche. Die Schreib-
weise mit eckigen Klammern wird in
JavaScript unterstützt, um Ihnen das
Leben beim Erstellen von Arrays etwas
leichter zu machen.
Oder auch bei Code wie diesem:
var items = ["a", "b", "c"];
Dies ist nur eine Abkürzung, die den Konstruktor auf andere Weise benutzt.
var items = new Array("a", "b", "c");
Wenn Sie mehr als ein Argument übergeben, erzeugt dieser
Code ein Array, das die übergebenen Werte enthält.
Die mit der literalen Schreibweise und dem direkten Aufruf des Konstruktors erstell-
ten Objekte sind gleich. In beiden Fällen können Sie die Array-Methoden benutzen.
Vielleicht fragen Sie sich, warum man den Konstruktor überhaupt nutzen sollte. Der
Konstruktor ist beispielsweise praktisch, wenn Sie zur Laufzeit ein Array bestimmter
Größe erstellen müssen, das später mit Elementen gefüllt werden soll, wie hier:
Das hier nennen wir
literale Array-Syntax.
Dieser Code verwendet
möglicherweise große
Arrays, deren Größe wir
erst zur Laufzeit kennen.
Um also schnell mal ein Array zu erzeugen, funktioniert die literale
Schreibweise wunderbar. Die Verwendung des Array-Konstruktors ist
sinnvoll, wenn Sie das Array programmatisch erstellen. Sie können beide
Verfahren nach Belieben einsetzen.
Get JavaScript-Programmierung von Kopf bis Fuß now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.