JavaScript

5.6 Mehrdimensionale Arrays

Was sind mehrdimensionale Arrays?

Bisher haben Sie Array-Strukturen kennen gelernt, bei denen Sie mit Laufnummer oder assoziativem Namen einem Element einen Wert zuweisen konnten. Dieses Spektrum möchten wir erweitern.
Nun ist JavaScript nicht ohne weiteres in der Lage, Arrays mit mehreren Dimensionen, das heißt einer beliebigen Anzahl von Elementen je Laufnummer oder assoziativem Namen, zu schaffen. Wir können uns jedoch auf einfache Art behelfen:
Wir hatten zu Beginn dieser Lerneinheit ausgeführt, dass die Elemente eines Arrays sowohl beliebige einfache Datentypen als auch Arrays enthalten können. Wir wollen also mehrdimensionale Arrays schaffen, indem wir Arrays ineinander schachteln.

Ein Beispiel zur Erzeugung eines mehrdimensionalen Arrays hat also die Form:

  arrayname = new Array();
  arrayname[index] = new Array();

Schauen Sie sich das an einem konkreten Beispiel an, in dem Sie die Namen und Adressen Ihrer Freunde speichern wollen:

  person = new Array();
  person[0] = new Array();

Im ersten Schritt wird dabei ein normales Array erzeugt, wie es Ihnen bereits bekannt ist. Im zweiten Schritt weisen wir einem Element des Arrays keinen einfachen Wert zu, sondern erzeugen darin ein weiteres Array, in dem die Daten zur ersten Person gespeichert werden sollen.
Wie verhält es sich nun mit dem Namen des inneren Arrays?

Um auf die Elemente im inneren Array zuzugreifen, würden wir schreiben:

  person[0]["Vorname"]
  person[0]["Nachname"]
  ...

Das Array verfügt damit über zwei Dimensionen, man kann sich das vorstellen wie eine Tabelle, bei der der erste Index die Zeile angibt, der zweite die Spalte. Wenn Sie möchten, können Sie diese Schachtelung immer weiter fortsetzen. Auch ein Array mit Dutzenden von Dimensionen ist machbar.  Natürlich sind in jeder Dimension sowohl numerische als auch assoziative Indizes erlaubt.

Wozu dienen mehrdimensionale Arrays?

Mehrdimensionale Arrays sind immer dann von Vorteil, wenn Sie mehrere Sätze zusammengehöriger Daten in einem Array speichern wollen. Vergleichen Sie einfach ein Adressbuch mit einem mehrdimensionalen Array. Jeder Personeneintrag besteht aus einer Reihe von Feldern wie Vorname, Nachname, Anschrift und so weiter. Diese sind mit einem assoziativen Array vergleichbar, welches von einem übergreifenden Array umfasst wird, denn schließlich fasst ein Adressbuch auch die Adressen mehrerer Personen.

In einem Skript könnte man dies zum Beispiel auch so handhaben:

<script type="text/javascript"> 
  var person = new Array();
 
  person[0] = new Array();
  person[0]["Vorname"] = "Fritz"; 
  person[0]["Nachname"] = "Walter"; 
  person[0]["E-Mail"] = "frwa@example.com"; 
 
  person[1] = new Array();
  person[1]["Vorname"] = "Sepp"; 
  person[1]["Nachname"] = "Herberger"; 
  person[1]["E-Mail"] = "sehe@example.com"; 
</script>

Bedenken Sie, dass Sie für jede neue Person, die Sie in Ihr Adressbuch eintragen wollen, ein neues Array anlegen müssen.

Kommentare (0)

Ihr Kommentar

Name