Dieser Artikel basiert auf dem Free Code Camp Basic Algorithm-Skript „Finde das längste Wort in einer Zeichenfolge“. In diesem Algorithmus möchten wir uns jedes Wort ansehen und zählen, wie viele Buchstaben in jedem Wort enthalten sind. Vergleichen Sie dann die Zählungen, um zu bestimmen, welches Wort die meisten Zeichen hat, und geben Sie die Länge des längsten Wortes zurück. In diesem Artikel erkläre ich drei Methoden. Erstens mit einer FOR-Schleife, zweitens mit der Methode sort() und drittens mit der Methode reduce(). Algorithmische Herausforderungen
Bereitgestellte Testfälle
Funktion findeLängstesWort(str) { gibt str.length zurück; } findLongestWord("Der schnelle braune Fuchs sprang über den faulen Hund"); 1. Verwenden Sie eine FOR-Schleife, um das längste Wort zu finden Für diese Lösung verwenden wir die Methode String.prototype.split()
Wir müssen ein Leerzeichen zwischen den Klammern der Methode split() einfügen var strSplit = „Der schnelle braune Fuchs ist über den faulen Hund gesprungen“.split(' '); Es wird ein Array von Wörtern ausgegeben: var strSplit = ["Der", "schnelle", "braune", "Fuchs", "sprang", "über", "der", "faule", "Hund"]; Wenn Sie keine Leerzeichen zwischen den Klammern hinzufügen, erhalten Sie die folgende Ausgabe: var strSplit = [„T“, „h“, „e“, „ “, „q“, „u“, „i“, „c“, „k“, „ “, „b“, „r“, „o“, „w“, „n“, „ “, „f“, „o“, „x“, „ “, „j“, „u“, „m“, „p“, „e“, „d“, „ “, „o“, „v“, „e“, „r“, „ “, „t“, „h“, „e“, „ “, „l“, „a“, „z“, „y“, „ “, „d“, „o“, „g“]; Funktion findeLängstesWort(str) { // Schritt 1. Teilen Sie den String in ein Array von Strings auf var strSplit = str.split(' '); // var strSplit = "Der schnelle braune Fuchs ist über den faulen Hund gesprungen".split(' '); // var strSplit = ["Der", "schnelle", "braune", "Fuchs", "sprang", "über", "den", "faulen", "Hund"]; // Schritt 2. Initiieren Sie eine Variable, die die Länge des längsten Wortes enthält var längstes Wort = 0; // Schritt 3. Erstellen Sie die FOR-Schleife für(var i = 0; i < strSplit.length; i++){ if(strSplit[i].length > longestWord){ // Wenn strSplit[i].length größer ist als das Wort, mit dem es verglichen wird... longestWord = strSplit[i].length; // ...dann nimmt longestWord diesen neuen Wert an } } /* Hier strSplit.length = 9 Für jede Iteration gilt: i = ? i < strSplit.length? i++ if(strSplit[i].length > longestWord)? longestWord = strSplit[i].length 1. Iteration: 0 ja 1 wenn("Die".Länge > 0)? => wenn(3 > 0)? längstesWort = 3 2. Iteration: 1 ja 2 wenn("quick".length > 3)? => wenn(5 > 3)? längstesWort = 5 3. Iteration: 2 ja 3 wenn("braun".Länge > 5)? => wenn(5 > 5)? längstesWort = 5 4. Iteration: 3 ja 4 wenn("fox".length > 5)? => wenn(3 > 5)? längstesWort = 5 5. Iteration: 4 ja 5 wenn("gesprungen".Länge > 5)? => wenn(6 > 5)? längstesWort = 6 6. Iteration: 5 ja 6 wenn("über".Länge > 6)? => wenn(4 > 6)? längstesWort = 6 7. Iteration: 6 ja 7 wenn("die".Länge > 6)? => wenn(3 > 6)? längstesWort = 6 8. Iteration: 7 ja 8 wenn("lazy".length > 6)? => wenn(4 > 6)? längstesWort = 6 9. Iteration: 8 ja 9 wenn("Hund".Länge > 6)? => wenn(3 > 6)? längstesWort = 6 10. Iteration: 9 nein Ende der FOR-Schleife*/ //Schritt 4. Das längste Wort zurückgeben returniere längstesWort; // 6 } findLongestWord("Der schnelle braune Fuchs sprang über den faulen Hund"); Keine Kommentare: Funktion findeLängstesWort(str) { var strSplit = str.split(' '); var längstes Wort = 0; für(var i = 0; i < strSplit.length; i++){ wenn (strSplit[i].length > längstesWord){ längstesWord = strSplit[i].length; } } gib das längste Wort zurück; } findLongestWord("Der schnelle braune Fuchs sprang über den faulen Hund"); 2. Finden Sie das längste Wort mit der Methode sort() Für diese Lösung verwenden wir die Methode Array.prototype.sort(), um das Array nach bestimmten Sortierkriterien zu sortieren und dann die Länge des ersten Elements dieses Arrays zurückzugeben.
In unserem Fall, wenn wir nur das Array sortieren var sortArray = [„Der“, „schnell“, „braun“, „Fuchs“, „sprang“, „über“, „der“, „faul“, „Hund“].sort(); Wir erhalten die folgende Ausgabe: var sortArray = ["Der", "braun", "Hund", "Fuchs", "sprang", "faul", "rüber", "schnell", "der"]; In Unicode stehen Zahlen vor Großbuchstaben, die wiederum vor Kleinbuchstaben stehen. Wir müssen die Elemente nach bestimmten Sortierkriterien sortieren [].sort(Funktion(erstesElement, zweitesElement) { return zweitesElement.Länge — erstesElement.Länge; }) Vergleicht die Länge des zweiten Elements mit der Länge des ersten Elements im Array. Funktion findeLängstesWort(str) { // Schritt 1. Teilen Sie den String in ein Array von Strings auf var strSplit = str.split(' '); // var strSplit = "Der schnelle braune Fuchs ist über den faulen Hund gesprungen".split(' '); // var strSplit = ["Der", "schnelle", "braune", "Fuchs", "sprang", "über", "den", "faulen", "Hund"]; // Schritt 2. Sortieren Sie die Elemente im Array var längstesWord = strSplit.sort(function(a, b) { gibt b.Länge - a.Länge zurück; }); /* Sortiervorgang ab b.Länge a.Länge var längstesWord "Der" "schnelle" 5 3 ["schnell", "Der"] "schnell" "braun" 5 5 ["schnell", "braun", "Das"] "braun" "Fuchs" 3 5 ["schnell", "braun", "Der", "Fuchs"] "Fuchs" "sprang" 6 3 ["sprang", schnell", "braun", "Der", "Fuchs"] "sprang" "über" 4 6 ["sprang", schnell", "braun", "über", "Der", "Fuchs"] "über" "das" 3 4 ["sprang", schnell", "braun", "über", "Das", "Fuchs", "das"] "der" "faul" 4 3 ["sprang", schnell", "braun", "über", "faul", "Der", "Fuchs", "der"] "faul" "Hund" 3 4 ["sprang", schnell", "braun", "über", "faul", "Der", "Fuchs", "der", "Hund"] */ // Schritt 3. Gibt die Länge des ersten Elements des Arrays zurück return längstesWort[0].Länge; // var längstesWort = ["gesprungen", "schnell", "braun", "rüber", "faul", "Der", "Fuchs", "der", "Hund"]; // längstesWort[0]="gesprungen" => gesprungen".Länge => 6 } findLongestWord("Der schnelle braune Fuchs sprang über den faulen Hund"); Keine Kommentare: Funktion findeLängstesWort(str) { var längstesWord = str.split(' ').sort(function(a, b) { return b.length - a.length; }); gibt längstesWort[0].Länge zurück; } findLongestWord("Der schnelle braune Fuchs sprang über den faulen Hund"); 3. Finden Sie das längste Wort mit der Methode „reduce()“ Für diese Lösung verwenden wir Array.prototype.reduce().
reduce() führt die Rückruffunktion einmal für jedes im Array vorhandene Element aus. Sie können einen Anfangswert als zweites zu reduzierendes Argument angeben. Hier fügen wir eine leere Zeichenfolge "" hinzu. [].reduce(Funktion(vorherigerWert, aktuellerWert) {...}, ""); Funktion findeLängstesWort(str) { // Schritt 1. Teilen Sie den String in ein Array von Strings auf var strSplit = str.split(' '); // var strSplit = "Der schnelle braune Fuchs ist über den faulen Hund gesprungen".split(' '); // var strSplit = ["Der", "schnelle", "braune", "Fuchs", "sprang", "über", "den", "faulen", "Hund"]; // Schritt 2. Verwenden Sie die Reduce-Methode var längstesWord = strSplit.reduce(Funktion(längstes, aktuellesWord) { wenn (aktuelleWortlänge > längsteWortlänge) aktuelles Wort zurückgeben; anders Rückkehr am längsten; }, ""); /* Prozess reduzieren aktuellesWort längste aktuelleWortlänge längste Länge wenn(aktuelleWortlänge > längste Länge)? var längstesWort "Die" "" 3 0 ja "Die" "schnell" "Das" 5 3 ja "schnell" "braun" "schnell" 5 5 nein "schnell" "Fuchs" "schnell" 3 5 nein "schnell" "gesprungen" "schnell" 6 5 ja "gesprungen" "rüber" "gesprungen" 4 6 nein "gesprungen" "der" "sprang" 3 6 nein "sprang" "faul" "gesprungen" 4 6 nein "gesprungen" "Hund" "gesprungen" 3 6 nein "gesprungen" */ // Schritt 3. Gibt die Länge des längsten Wortes zurück return längstesWort.Länge; // var längstesWord = "gesprungen" // längstesWort.Länge => "gesprungen".Länge => 6 } findLongestWord("Der schnelle braune Fuchs sprang über den faulen Hund"); Keine Kommentare: Funktion findeLängstesWort(str) { var längstesWort = str.split(' ').reduce(function(längstes, aktuellesWort) { Gibt aktuelleWortlänge > längsteWortlänge zurück? AktuellesWort: längste; }, ""); gibt längsteWortlänge zurück; } findLongestWord("Der schnelle braune Fuchs sprang über den faulen Hund"); Damit ist dieser Artikel über drei Möglichkeiten, das längste Wort in einer Zeichenfolge in JavaScript zu finden, abgeschlossen. Weitere Informationen zum Finden des längsten Wortes in einer Zeichenfolge in js finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.17 (Windows)
>>: Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.17 winx64
Frage Bei der Installation von Docker mithilfe de...
Inhaltsverzeichnis 1. Einleitung 2. Haupttext 2.1...
Inhaltsverzeichnis Vorwort Ziel Erster Schritt: S...
Bei jedem Start von Tomcat werden die folgenden P...
1 Einleitung Das Binärprotokoll zeichnet SQL-Anwe...
Nachdem wir im vorherigen Artikel mit OpenSSL ein...
Docker erfreut sich immer größerer Beliebtheit. E...
Ich habe 3 Methoden zusammengefasst, um mehrere F...
Code kopieren Der Code lautet wie folgt: <a hr...
Bei der getrennten Entwicklung von Front-End und ...
Unabhängig davon, ob Sie ein Windows- oder Linux-...
Inhaltsverzeichnis Code: Auffüllen: Zusammenfasse...
So schreiben Sie DROP TABLE in verschiedene Daten...
Im vorherigen Blog haben wir über die Verwendung ...
Wir müssen lediglich einen beliebigen Texteditor ö...