JavaScript - Arrays - Das dumme Objekt
1. Die Abschnitte
- Überblick
- Das dumme Objekt
- Die Sache mit den Indizes
- Das Ding mit der Verarbeitung
- Voodoo oder was?
- Sein oder nicht sein, das ist hier die Frage
- Und all die schönen Array-Funktionen von PHP?
- Die Erleuchtung
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