Struppi: Arrayelemente zählen?

Beitrag lesen

Liebe alle - im Zusammenhang mit meinem Web Sudoku (URL oben) tauchte folgende Grundsatzfrage auf: Gibt es in Javascript eine Möglichkeit, gleiche Variablen (Werte oder Strings) innerhalb eines Arrays zu zählen? Oder etwas ausführlicher: In einem Beispielarray

Farben=new Array("grün", "gelb", "blau", "grün", "rot");

würde ich gern mittels einer Array-Methode die Anzahl "grün" ermitteln. Als Parameter würde also "grün" übergeben; der Rückgabewert müsste die Anzahl des Strings "grün" sein, hier also 2. Ich werde und werde nicht fündig.

Dafür bietet sich ein assoziative Array an, dass es zwar in JS so nicht gibt, aber mit einem Objekt nachgebaut werden kann.

  
Array.prototype.count = function( was )  
{  
   var tmp = {};  
   for(var i = 0; i < this.length; i++) if(tmp[this[i]]) tmp[this[i]]++ else tmp[this[i]] = 1;  
   return tmp[was]  
}  
  
var Farben = new Array("grün", "gelb", "blau", "grün", "rot");  
  
alert(Farben.count('grün'));  

Struppi.

--
Javascript ist toll (Perl auch!)