Zählen die Anzahl der Vokale in einem string mit JavaScript
Ich bin mit basic JavaScript zum zählen der Anzahl der Vokale in einer Zeichenkette. Der code unten funktioniert, aber ich möchte es ein bisschen aufgeräumt. Würde mit .includes()
helfen, überhaupt wenn man bedenkt es ist ein string? Ich würde gerne so etwas wie string.includes("a", "e", "i", "o", "u")
wenn überhaupt möglich, zu bereinigen, die bedingte Anweisung. Auch ist es erforderlich, umwandeln der Eingabe in einen string?
function getVowels(str) {
var vowelsCount = 0;
//turn the input into a string
var string = str.toString();
//loop through the string
for (var i = 0; i <= string.length - 1; i++) {
//if a vowel, add to vowel count
if (string.charAt(i) == "a" || string.charAt(i) == "e" || string.charAt(i) == "i" || string.charAt(i) == "o" || string.charAt(i) == "u") {
vowelsCount += 1;
}
}
return vowelsCount;
}
InformationsquelleAutor dcook | 2015-04-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie tatsächlich tun dies mit einem kleinen regex:
Diese nur Spiele gegen die regex (
g
macht es die Suche die saite ganzi
macht es groß-und Kleinschreibung) und gibt die Anzahl der übereinstimmungen. Wir prüfen fürnull
sofern es keine Spiele (also keine Vokale), und gibt 0 zurück, in diesem Fall.InformationsquelleAutor James Thorpe
Brauchen Sie nicht zu konvertieren, alles, Javascript, error handling ist genug, um anzudeuten, Sie auf eine so einfache Funktion, wenn Sie benötigt werden.
subject
enthält keine Vokale.return (subject.match(/[aeiou]/gi) || []).length;
ändern, um dies nur für den FallInformationsquelleAutor sudo
Verwenden
match
aber vorsichtig sein, da es zurückgeben kann null wenn keine übereinstimmung gefunden wirdInformationsquelleAutor Radu Chiriac
Kurz und ES6, können Sie mithilfe der Funktion count(str);
InformationsquelleAutor Sumer
Nutzen Sie einfach diese Funktion [ES5] :
Funktioniert wie ein Charme
InformationsquelleAutor maximast
Diese konnten auch gelöst werden, mit .ersetzen() Methode durch ersetzen, was nicht ein Vokal mit einer leeren Zeichenfolge (im Grunde ist es löscht diese Zeichen) und gibt die neue Länge des Strings:
oder wenn Sie es bevorzugen ES6
InformationsquelleAutor Iulius
Dies ist der kürzeste Lösung
InformationsquelleAutor Akash More
InformationsquelleAutor user9248223