JavaScript – M+T Pocket . Das Programmier-Handbuch (Office Einzeltitel) [Taschenbuch]

6.3
Arrays

Selbstverständlich gibt es unter
JavaScript Datenfelder (Arrays) jeglicher Datentypen. Ein Array ist eine
Sammlung von Variablen, die alle über einen Bezeichner und einen in eckigen
Klammern notierten Index (bei
0 beginnend) angesprochen werden können. Array sind immer dann
von großem Nutzen, wenn eine Reihe von gleichartigen oder logisch
zusammenfassbaren Informationen gespeichert werden soll. Das könnten beispielsweise
die Monate des Jahrs oder die zu einer Person gehörenden Daten sein. Wenn Sie
für jede einzelne Information eine eigne Variable definieren, müssen sie viele
sinnvolle Namen vergeben und man hat viel Schreibarbeit. Außerdem steigt die
Fehlerwahrscheinlichkeit und nicht zuletzt wird das Script größer. Ein Name und
ein Index ist viel effektiver. Der Hauptvorteil ist aber, dass der Zugriff auf
die einzelnen Einträge im Array über den nummerischen Index erfolgen kann. Das
kann man in Programmkontrolfluss-Anweisungen und sonstigen automatisierten
Vorgängen nutzen. Insbesondere die Bestandteile einer Webseite werden vielfach
in Arrays gespeichert. Etwa
forms[0] oder elements[1],
wie sie bei Objekten im Rahmen einer Webseite auftauchen. Dies sind so genannte
Objektfelder als Spezialfall von Arrays. Erst über Array werden Dinge möglich,
die man bei der Nutzung von Objektfeldern in einer Webseite einsetzt. Etwa der
Fall, dass in einer Webseite fünf Applets vorkommen. Mit den Vorschriften, wie
sie im unter JavaScript verwendeten Objektmodell realisiert sind, ist klar,
dass diese in einem Array mit definiertem, vorgegebenen Bezeichnern (applets)
gespeichert werden und der Reihe ihres Vorkommens in der Webseite im Array
einsortiert und durchnumeriert werden. Aber wie gesagt – auch in »normalen«
Situationen findet man Arrays. Nur man sollte auf jeden Fall beachten, dass
Arrays in JavaScript Objekte sind und deshalb etwas anders behandelt werden,
als es bei »normalen« Variablen der Fall ist. Dies betrifft insbesondere die
Erzeugung. Man kann beispielsweise bei der Erzeugung eines Arrays eine Größe
angegeben. Das ist aber in JavaScript keine verbindliche Festlegung. Ein Array
kann nachträglich erweitert werden. Was aber noch ein erheblicher Unterschied
zu "normalen" Variablen ist, ist die Tatsache, dass Arrays immer mit
Hilfe eines JavaScript-Schlüsselworts erzeugt werden – new (die Hintergründe werden bei der
Behandlung der Objekt-Theorie geklärt). Und zwar mit folgender Syntax:

var [Arraybezeichner] = new Array([Anzahl Einträge]);

Das erzeugt ein Array mit der vorgegebenen Anzahl von
Einträgen.

Alternativ kann man die Arrayeinträge bereits vorbelegen
(mit identischen Werten):

var [Arraybezeichner] =

new Array([Anzahl
Einträge],"[Vorbelegungswert]");

Eine Erzeugung mit gleichzeitiger Vorbelegung und damit auch
festgelegter Anzahl von Elementen geht auch so:

var [Arraybezeichner] =

new Array([Element0], [Element1],
…, [ElementN]);

Auf diese Weise wird ein Datenfeld mit N + 1 Elementen
erstellt.

Die Größe eines Arrays lässt sich mit der Eigenschaft length überprüfen.

Da sich aber Arrays in JavaScript zu Laufzeit noch
vergrößern lassen, legt man oft nur den Arraybezeichner fest und fügt dann bei
Bedarf die Felder hinzu. Ein Array ohne Einträge wird einfach so erzeugt:

var [Arraybezeichner] = new Array();

Dies entspricht

var [Arraybezeichner] = new Array(0);

Einem Element eines Arrays weisen Sie einfach einen Wert zu,
indem Sie den Namen des Arrays, eine eckige Klammer auf, den Index und eine
eckige Klammer zu angeben und dann wie gewöhnlich einen Wert zuweisen. Syntax:

[Arraybezeichner][[Index]] = [Wert];

Beispiel:

meinArray = new Array();

meinArray[0] = 2;

meinArray[1] = 3;

meinArray[2] = 5;

meinArray[3] = 7;

meinArray[4] = 11;

Ein Array kann Variablen verschiedener Datentypen aufnehmen
(das können die meisten Programmiersprachen nicht). Sie können beispielsweise
in einem Array die Daten von einer Person aufnehmen, die teilweise aus Zahlen
bestehen, teilweise aus booleschen Werten und aus Text. Das soll in einem
vollständigen Beispiel durchgespielt werden.

<HTML>

<BODY>

<SCRIPT
language="JavaScript">

var adresse = new Array();

adresse[0] = "Hauptstrasse";

adresse[1] = 42;

adresse[2] = 12345;

adresse[3] = "Hinterdemond";

adresse[4] = "00612345678";

adresse[5] = true;

adresse[6] = "Wüst";

adresse[7] = "Willi";

document.write("Mein Name ist " + adresse[7]
+

" " + adresse[6] + ".");

document.write("<BR>");

document.write("Ich wohne in der
",adresse[0],

" ", adresse[1]);

document.write("<BR>");

document.write(adresse[2]," ", adresse[3]);

document.write("<BR>");

document.write("Meine Telefonnummer: ",
adresse[4]);

document.write("<BR>");

document.write("Fax vorhanden? ",
adresse[5]);

document.write("<BR>");

</SCRIPT>

</BODY>

</HTML>

Listing 6.6: Ein Array mit verschiedenen
Datentypen

Bei der Deklaration des Arrays muss bei der Einführung
theoretisch kein var
vorangestellt werden. Die meisten Browser kommen damit zurecht, aber es gibt
auch Browser, die auf die korrekte Syntax bestehen. Nutzen Sie zur Sicherheit
auf jeden Fall die vollständige Syntax.

Mehr zu Arrays (insbesondere mehr Beispiele) finden Sie u.a.
bei der Besprechung der for-Schleife
(siehe Seite 139), die sehr oft in Verbindung mit Arrays
eingesetzt wird.