Ich muss eine Art Schleife schreiben, die die Häufigkeit jedes Buchstabens in einer Zeichenfolge zählt.
Zum Beispiel: "aabsssd"
Ausgabe: a: 2, b: 1, s: 3, d: 1
Sie möchten auch dasselbe Zeichen wie den Eigenschaftsnamen im Objekt zuordnen. Irgendeine gute Idee, wie man das macht?
Ich bin nicht sicher, wie es geht.
Hier bin ich so weit:
%Vor%Hier ist ein anderer Weg:
%Vor%z.B. freqMap ("MaMaMia") gibt das Objekt {M: 3, a: 3, i: 1}
zurückDiese Methode nutzt die Tatsache, dass in Javascript bitweise nicht auf "undefiniert" -1 ergibt (während "undefined + 1" NaN ergibt). Also, - ~ undefined ist 1, - ~ 1 ist 2, - ~ 2 ist 3 usw.
Wir können also über die Zeichen der Zeichenfolge iterieren und einfach freq [c] ohne "if" erhöhen. Wenn wir das erste Mal auf ein Zeichen c stoßen, ist freq [c] undefiniert, also setzen wir es auf - ~ freq [c], was 1. Wenn wir dann wieder auf c treffen, setzen wir freq [c] erneut auf - ~ freq [c], was nun 2 ist, usw.
Einfach, elegant, prägnant.
eine schlankere, funktionale Lösung:
Weitere Informationen finden Sie unter Instanzen von Werten in einem Objekt zählen hier auf halbem Weg: MDN Reduzieren
Weitere Informationen zur Verwendung von logischen Operatoren finden Sie hier: MDN Logische Operatoren
Wenn Sie einen Ausdruck als Funktionsausdruck verwenden und weitere Klammern für einen anderen Pfeil ausgeben möchten, können Sie wie folgt schreiben:
%Vor%Tags und Links javascript