Hauptmenü

Untermenü

JavaScript - Arrays - Das dumme Objekt

1. Die Abschnitte

2. Der feine Unterschied

In PHP (und anderen Sprachen wie zum Beispiel Perl) sind Arrays verkette Listen, die sich ganz einfach erzeugen lassen. In PHP also zum Beispiel so.


// Eine Möglichkeit
$array[] = 'blubb';
// Eine andere Möglichkeit
$array['bla'][] = 'blubber';
// Das geht auch
$array = array ();
$array['bla']['blubb'][0] = 'jodelblah';

Man kann also jederzeit ein Array um beliebig viele Ebenen erweitern. So lassen sich ohne große Probleme mehrdimensionale, numerische und/oder assoziative Arrays erzeugen.

3. In JavaScript nicht

Da ist alles ein wenig anders. Zunächst mal gibt es vier Möglichkeiten, um ein Array-Objekt zu erzeugen.


mein_array = new Object ();
mein_array = Array ();
mein_array = new Array ();
mein_array = [];

Was die Benutzung von Object angeht, so liegt der Unterschied zu den beiden anderen Varianten darin, dass man auf gar keinen Fall die Anzahl der Einträge eines Arrays ermitteln kann. Aber was ist denn nun der Unterschied zwischen Array und new Array. Praktische gesehen gibt es keinen. Im ersten Fall wird die Funktion Array aufgerufen und der Wert in mein_array gespeichert, im zweiten Fall wird ein neues Array-Objekt erzeugt und der Wert in selbige Variable gespeichert. Auf gut deutsch gesagt ist es lattens, welche Variante ihr benutzt. Es hat sich aber eingebürgert, new zu nehmen, damit deutlich zu sehen ist, dass ein Objekt erzeugt wird. Die letzte Möglichkeit scheint, so weit ich das überblicke, nur eine verkürzte Schreibweise von new Array zu sein. Habe damit aber noch nie gearbeitet.

4. Zusätzliche Ebenen

Wie oben schon gesehen, kann man zum Beispiel bei PHP ein Array jederzeit um eine weitere Ebene ergänzen, indem man einfach ein [irgendwas] anhängt. In JavaScript geht das nicht. Da muss jedes Mal ein zusätzliches Array-Objekt erzeugt werden.


mein_array              = new Array ();
mein_array[0]           = new Array ();
mein_array[0]['bla']    = new Array ();
mein_array[0]['bla'][0] = 'Blubb';
mein_array[0]['bla'][1] = 'Blubber';

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt