JavaScript - Objekte - Arrays
1. Hinweis
In meiner PHP-Einführung zum Thema Arrays habe ich die grundsätzliche Arbeitsweise mit Arrays schon ausführlich erläutert. Also lest euch das bitte zuerst durch, damit ihr wisst, um was es sich eigentlich handelt. Hier geht es nur noch um die Besonderheiten bei JavaScript.
2. Das Objekt
Bei den Grundlagen zu den Arrays in PHP habe ich euch schon die Wirkungsweise und Vorteile zu vermitteln versucht. Kommen wir nun zum großen Unterschied. Wie ich eingangs bereits erwähnte, sind Arrays in JavaScript keine "verketteten" Listen wie in PHP, sondern Objekte (leider). Das macht das Arbeiten damit nicht besonders komfortabel, aber da müssen wir durch.
3. Erzeugen eines Array-Objektes
Hier stellt uns JavaScript drei grundsätzliche Möglichkeiten zur Verfügung, mit denen man im Gegensatz zu PHP immer anfangen muss.
var mein_array = new Object ();
var mein_array = Array ();
var mein_array = new Array ();
Fragt mich bitte nicht nach dem Unterschied zwischen Array
und new Array
, das habe ich bis heute noch
nicht begriffen. Was die Initialisierung mittels Object
angeht, so kann ich euch sagen, dass in diesem Fall zum
Beispiel eine Abfrage der Anzahl über mein_array.length
nicht funktioniert. Solche Arrays müssen immer mit einer
for ... in
Schleife ausgelesen werden. Um auf Nummer sicher zu gehen, sollte man immer die Standardmethode
new Array
nehmen.
Mehrdimensionale Arrays
Sobald in JavaScript ein Array ein weiteres enthalten soll, muss man wieder so vorgehen wie oben. Es ist leider nicht möglich, einfach mit eckigen Klammern zu arbeiten, so wie man das aus PHP gewohnt ist:
var mein_array = new Array ();
mein_array [0] = new Array ();
4. Vergabe eines Indizes
Solange man ein Array nicht so mit Inhalten befüllt bla = new Array ('blubb','blubber')
, muss man immer explizit einen
Index angeben, völlig egal ob der nun numerisch oder alphanumerisch ist:
var mein_array = new Array ();
mein_array[0] = 'blubb';
meine_array['bla'] = 'blubber';
So etwas wie in PHP ist leider nicht möglich:
<?php
$name[] = 'Hinz';
$name[] = 'Kunz';
?>
5. Assoziative Arrays
... gibt es in dem Sinne bei JavaScript nicht! Man kann dem Kind zwar einen Namen geben, aber die Verarbeitung unterscheidet sich doch deutlich zu der von PHP. So ist in so einem Fall zum Beispiel eine Abfrage nach der Anzahl von Einträgen nicht möglich:
bla = new Array ();
bla['a'] = 'blubb';
bla['b'] = 'blubber'
bla['c'] = 'schwall';
alert (bla.length);
Hier bekommt ihr im Gegensatz zu PHP doch tatsächlich eine 0
zurückgeliefert, auch wenn das Array drei(!) Einträge hat.
Und weil das alles ziemlich krank ist, gibt es zu diesem Thema sogar ein eigenes
Tutorial.
zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt