Java Reference
In-Depth Information
Wenn ein Array-Element den undeined -Zustand aufweist, startet mit continue der nächste
Schleifendurchlauf. Allerdings gibt es noch eine weitere Besonderheit in dem Zusammen-
hang, die wir beachten müssen und die zu einer speziellen Schleifenform für die Iteration
über Arrays führt. Und dazu kommen wir erst einmal wieder zu assoziierten Arrays zurück.
5.7.4.1■Zugrif auf alle Elemente eines Arrays über for . . . in
Beim Zugrif auf assoziative Datenfelder haben Sie den Preis zu zahlen, dass Sie die Ele-
mente mit einem nichtnumerischen Index nicht in normalen Schleifen erwischen. So etwas
wie hier ist also bei so einem Datenfeld mit Textindizes nicht möglich:
Listing 5.37■ Das geht bei einem numerisch indizierten Array, aber nicht bei einem assoziativen
Array
for (i = 0; i < x.length; i++) {
document.write(x[i] + <br />);
}
Die Eigenschat length hat sogar den Wert 0, wenn kein numerischer Index vorhanden ist.
Trotzdem kann man den gesamten Inhalt eines assoziativen Datenfelds in einer Schleife
durchlaufen. Und zwar kommt da eine Variante der for -Schleife zum Einsatz - die for...in -
Schleife. Die for...in -Schleife hat schematisch folgende Syntax:
Listing 5.38■ Die Syntax der for...in-Schleife
for ( [Zählvariable] in [Arrayname] ) { ... }
Mit dieser Schleifenform kann man ohne explizite Angabe der Größe des Datenfelds dieses
vollständig durchlaufen. Das gilt sowohl für Datenfelder mit numerischem Index als auch
für assoziative Datenfelder! Und auch gemischt indizierte Arrays. Diese Schleifenform
durchläut einfach automatisch alle existierenden Einträge eines Datenfelds. Damit würden
Sie auch im Beispiel kap5_18.html die als undeined gekennzeichneten Array-Elemente
nicht stören, da diese von der Schleife überhaupt nicht geliefert werden.
HInWEIS: Beachten Sie, dass die Zählvariable der Schleife den Index darstellt.
Das ist in einigen anderen Sprachen wie Java bei der vergleichbaren Schleife
nicht der Fall. Dort steht die Zählvariable für das Element selbst.
Für den Zugrif auf den Inhalt eines Felds müssen Sie die Zählvariable dann als Index in der
Implementation der Schleife verwenden.
HInTErGrunDInFOrMATIOn: Ab ECMAScript 5 gibt es neben der for...in -
Schleife zwei weitere Möglichkeiten, um Objekteigenschaten aufzulisten oder
zu durchlaufen. Mit Object.keys(o) erhalten Sie ein Array mit allen eigenen
aufzählbaren Eigenschatsnamen (Schlüssel) eines Objekts o und mit
Object.getOwnPropertyNames(o) ein Array mit allen Eigenschatsnamen
(aufzählbar oder nicht) eines Objekts o . Allerdings werden die Methoden in
vielen Browsern (noch) nicht unterstützt.
 
Search WWH ::




Custom Search