Gibt an, wie oft ein Array-Element angezeigt wird

8

Ich bin neu in JavaScript, lerne und übe seit ungefähr drei Monaten und hoffe, dass ich Hilfe zu diesem Thema bekomme. Ich mache ein Pokerspiel und was ich versuche zu tun, ist zu bestimmen, ob ich ein Paar, zwei Paare, drei einer Art, vier einer Art oder ein volles Haus habe.

Beispiel: In [1, 2, 3, 4, 4, 4, 3] erscheint 1 einmal, 4 erscheint dreimal und so weiter.

Wie könnte ich meinen Computer bitten, mir zu sagen, wie oft ein Array-Element erscheint?

Gelöst, hier ist das Endprodukt.

%Vor%     
Frederic Daniel 14.11.2012, 23:49
quelle

6 Antworten

22
  • Behalte eine Variable für die Gesamtzahl
  • Durchstreichen Sie das Array und prüfen Sie, ob der aktuelle Wert dem gesuchten Wert entspricht. Ist dies der Fall, erhöhen Sie die Gesamtzahl um eins
  • Nach der Schleife enthält total count die Anzahl, wie oft die gesuchte Zahl im Array
  • ist

Zeigen Sie Ihren Code und wir können Ihnen helfen herauszufinden, wo der Fehler aufgetreten ist

Hier ist eine einfache Implementierung (da Sie nicht den Code haben, der nicht funktioniert hat)

%Vor%

countInArray könnte auch als

implementiert worden sein %Vor%

Eleganter, aber vielleicht nicht so performant, da es ein neues Array erstellen muss.

    
Juan Mendes 14.11.2012, 23:55
quelle
5

Nun ..

%Vor%

von hier: Zählen der Vorkommen von JavaScript-Array-Elementen

Oder Sie finden dort auch andere Lösungen.

    
Filkor 14.11.2012 23:56
quelle
4

Wenn Sie auf die Browser, die in letzter Zeit ausreichend sind, zugreifen, können Sie filter() . (Die MDN-Seite bietet auch einen Polyfill für die Funktion.)

%Vor%

Sie können die Filterfunktion sogar folgendermaßen abstrahieren:

%Vor%     
millimoose 15.11.2012 00:57
quelle
2

Mit filter und length erscheint es einfach, aber es gibt eine große Verschwendung von Speicher.

Wenn Sie schöne Array-Methoden verwenden möchten, ist die passende reduce :

%Vor%
    
Oriol 30.01.2017 17:33
quelle
0

Hier ist eine Implementierung von Juan's Antwort:

%Vor%

Noch kürzer:

%Vor%     
0x499602D2 15.11.2012 00:36
quelle
0

Hier ist eine Implementierung, die den Prototyp des Array-Objekts verwendet und über eine zusätzliche Funktionalität verfügt, die die Länge zurückgibt, wenn kein Suchelement angegeben wird:

%Vor%

Dies hat eine extrem einfache Verwendung und ist wie folgt:

%Vor%     
Dendromaniac 06.05.2015 18:48
quelle

Tags und Links