Drei Möglichkeiten, das längste Wort in einem String in JavaScript zu finden (empfohlen)

Drei Möglichkeiten, das längste Wort in einem String in JavaScript zu finden (empfohlen)

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

  • Gibt die Länge des längsten Wortes im angegebenen Satz zurück.
  • Ihre Antwort sollte eine Zahl sein.

Bereitgestellte Testfälle

  • findLongestWord("Der schnelle braune Fuchs sprang über den faulen Hund") gibt eine Zahl zurück
  • findLongestWord("Der schnelle braune Fuchs sprang über den faulen Hund") gibt 6 zurück
  • findLongestWord("Möge die Macht mit dir sein") gibt 5 zurück
  • findLongestWord("Google macht einen Fassrollen") gibt 6 zurück
  • findLongestWord("Wie hoch ist die durchschnittliche Fluggeschwindigkeit einer unbeladenen Schwalbe") gibt 8 zurück
  • findLongestWord("Was passiert, wenn wir ein superlanges Wort wie Hals-Nasen-Ohrenheilkunde ausprobieren") gibt 19 zurück
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()

  • Die Methode split() teilt ein String-Objekt in ein String-Array auf, indem sie den String in Teilstrings aufteilt.

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.

  • Die Methode sort() sortiert die Elemente eines Arrays und gibt das Array zurück.

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().

  • Die Methode „reduce()“ wendet eine Funktion auf ein Reservoir und jeden Wert des Arrays (von links nach rechts) an, um ihn auf einen einzelnen Wert zu reduzieren.

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:
  • Zusammenfassung von 28 gängigen JavaScript-String-Methoden und Verwendungstipps
  • Zusammenfassung mehrerer häufig verwendeter String-Methoden in JavaScript (unbedingt lesenswert für Anfänger)
  • Java-Methode zum Konvertieren eines Felds vom Typ „Datum“ in eine JSON-Zeichenfolge
  • Eine einfache Möglichkeit, JavaScript-Zeichenfolgen in Zahlen umzuwandeln
  • Zusammenfassung gängiger Betriebsmethoden der JavaScript-Zeichenfolgenverarbeitung
  • Detaillierte Erklärung der Javascript-String-Methoden

<<:  Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.17 (Windows)

>>:  Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.17 winx64

Artikel empfehlen

Erstellen Sie mit PS in zwei Minuten eine Homepage für eine XHTML+CSS-Website

Es gibt zu viele Artikel über Webstandards zur We...

So verwenden Sie den Linux-Befehl „locate“

01. Befehlsübersicht Der Befehl „locate“ ist eige...

Implementierung der Docker-Bereitstellung von Webprojekten

Im vorherigen Artikel wurde der Docker-Dienst ins...

Lösung für den internen Serverfehler Nginx 500

Als ich heute Nginx verwendete, trat ein 500-Fehl...

React verwendet Routing, um zur Anmeldeoberfläche umzuleiten

Im vorherigen Artikel haben wir nach der Konfigur...

Detaillierte Beschreibung des Anwendungsszenarios für Javascript-Closure

Inhaltsverzeichnis 1. Abschluss 2. Szenarien für ...

14 praktische Erfahrungen zur Reduzierung von SCSS-Code um 50 %

Vorwort Sass ist eine Erweiterung der CSS3-Sprach...

Ein QQ-Chatroom basierend auf vue.js

Inhaltsverzeichnis Einführung Nachfolgend sehen S...

Detaillierte Erklärung des Linux-Netstat-Befehls

Inhaltsverzeichnis Linux-Netstat-Befehl 1. Detail...

js-Code zur Realisierung eines Chatrooms für mehrere Personen

In diesem Artikelbeispiel wird der spezifische Co...