JavaScript - Arrays - Und all die schönen Array-Funktionen von PHP?
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. ... dürft ihr selber nachprogrammieren
Das ist kein Witz! JavaScript bietet nur 10 Methoden zur Array-Behandlung an, also kein Vergleich zu den 70 Funktionen, die
PHP alleine zu diesem Thema in Petto hat. Benötigt ihr also so schöne Dinge wie in_array
oder
array_unique
, dann heißt es.
Auf Gesellen, frisch ans Werk! [Quelle: keine Ahnung, irgendein tyrannischer Chef?]
Oder aber ihr sucht ein entsprechendes Framework, das das alles schon beinhaltet. Leider sind das meist ziemlich große Lappen, so dass es unter Umständen wirklich ratsam ist, sich wirklich nur die Methoden nachzuprogrammieren, die man auch wirklich benötigt. So könnt ihr euch im Laufe der Zeit eine individuelle und für euch maßgeschneiderte Bibliothek zusammenbauen. Und mal ehrlich, wie viel der zahllosen Array-Funktionen von PHP habt ihr wirklich schon benutzt?
3. Und wie geht das jetzt?
Wer es sich leicht machen will, programmiert sich einfach eine stinknormale Funktion, die dann entsprechend aufgerufen wird.
Idealerweise sollte sie sogar den Namen des PHP-Pendants haben, dann merkt man nicht mal die Umstellung. Ein kleines Beispiel
für eine in_array
-Funktion.
function in_array (find, arr)
{
for(var i in arr)
{
if (find == arr[i])
{
return true;
}
}
return false;
}
mein_array = new Array ('bla','blubb','blubber','schwall','laber');
if (in_array ('blubber',mein_array))
{
alert ('Jau, is da');
}
4. Und nun was für die Profis
Man kann diese Funktionen auch direkt als Methoden des Array-Objekts festlegen. Dazu benutzt man das so genannte "Prototyping", zu dem ich mich hier ausgelassen habe. Aber Vorsicht! Das ist nicht ganz ungefährlich, denn ihr könnt euch damit derbe ins Knie schießen.
Array.prototype.in_array = function (find)
{
for(var i in this)
{
if (find == this[i])
{
return true;
}
}
return false;
}
mein_array = new Array ('bla','blubb','blubber','schwall','laber');
if (mein_array.in_array ('bla'))
{
alert ('JAU');
}
zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt