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

Probleme und Lösungen bei der Installation von Docker in der Alibaba Cloud

Frage Bei der Installation von Docker mithilfe de...

Detaillierte Erklärung der NodeJS-Modularität

Inhaltsverzeichnis 1. Einleitung 2. Haupttext 2.1...

Einfache Implementierung von Mini-Vue-Rendering

Inhaltsverzeichnis Vorwort Ziel Erster Schritt: S...

Analyse der Protokolldateien im Tomcat-Protokollverzeichnis (Zusammenfassung)

Bei jedem Start von Tomcat werden die folgenden P...

Ausführliche Erklärung des Binlogs in MySQL 8.0

1 Einleitung Das Binärprotokoll zeichnet SQL-Anwe...

So verwenden Sie Docker zum Bereitstellen von Front-End-Anwendungen

Docker erfreut sich immer größerer Beliebtheit. E...

Mehrere Methoden zum Bereitstellen mehrerer Front-End-Projekte mit nginx

Ich habe 3 Methoden zusammengefasst, um mehrere F...

Detaillierte Erläuterung der Persistenz des Vue-Seitenstatus

Inhaltsverzeichnis Code: Auffüllen: Zusammenfasse...

So schreiben Sie DROP TABLE in verschiedene Datenbanken

So schreiben Sie DROP TABLE in verschiedene Daten...

Tutorial zur Tomcat-Konfiguration für Nginx/Httpd-Lastausgleich

Im vorherigen Blog haben wir über die Verwendung ...

HTML-Code, der den Internet Explorer zum Einfrieren bringen kann

Wir müssen lediglich einen beliebigen Texteditor ö...