Hauptmenü

Untermenü

JavaScript - Arrays - Und all die schönen Array-Funktionen von PHP?

1. Die Abschnitte

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 (findarr) 
{
  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