Heim  >  Artikel  >  Web-Frontend  >  Erstellen eines Word-Unscramblers mit JavaScript (Teil 4)

Erstellen eines Word-Unscramblers mit JavaScript (Teil 4)

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-16 18:26:02884Durchsuche

Hallo zusammen! ?

Letztes Mal habe ich ein Mini-Abenteuer auf der Suche nach der besten API gemacht und nachdem ich mehrere Optionen getestet hatte, habe ich mich für Wordnik entschieden. Es verfügt über eine riesige Wortdatenbank und obwohl es eine Woche gedauert hat, die API-Schlüssel zu bekommen, habe ich sie endlich bekommen. Jetzt ist es an der Zeit, es zu integrieren und zu prüfen, ob die aus unseren Permutationen generierten Wörter tatsächlich gültig sind.

Die Herausforderung: Wörter validieren

Mir ist aufgefallen, dass die meisten Wörterbuch-APIs, einschließlich Wordnik, keine direkte Möglichkeit haben, zu überprüfen, ob ein Wort existiert. Sie bieten Definitionen und Beispiele, aber keine einfache Validierung.
Um dies zu umgehen, habe ich den Scrabble-Score-Endpunkt von Wordnik verwendet. Die Logik ist einfach: Wenn ein Wort einen Scrabble-Score hat, gilt es als gültig.

Hier ist der Code zum Implementieren dieser Validierung:

async function isValidWord(word) {
    const apiKey = 'API_KEY'; // use your own API keys
    const url = `https://api.wordnik.com/v4/word.json/${word}/scrabbleScore?api_key=${apiKey}`;

    try {
        const response = await fetch(url);

        if (response.status === 200) {
            return true;  // Word is valid
        } else if (response.status === 404) {
            return false; // Word not found in dictionary
        } else {
            console.error(`Error: Received status ${response.status} for word "${word}"`);
            return false; 
        }
    } catch (error) {
        console.error('Error checking word validity:', error);
        return false;
    }
}

async function descrambleWords() {
    const input = document.getElementById('scrambledInput').value;
    const combinations = generatePermutations(input); 
    const validWords = [];

    // Check each word one by one for validity
    for (const word of combinations) {
        const isValid = await isValidWord(word);
        if (isValid) {
            validWords.push(word); // Only push valid words
        }
    }

    const categorizedWords = categorizeByLength(validWords); 
    displayResults(categorizedWords); 
}

Aufschlüsseln

asynchrone Funktion isValidWord(word)

Diese Funktion ist dafür verantwortlich, zu prüfen, ob ein bestimmtes Wort in der Wordnik-API vorhanden ist, indem sie seinen Scrabble-Score-Endpunkt abfragt.

  1. URL-Einrichtung:

    • Die Funktion erstellt eine API-Anfrage mit dem Wort, das wir überprüfen möchten, und hängt sie an die Basis-URL für den Scrabble-Score-Endpunkt an.
    • Beispiel: Für das Wort „Apfel“ wäre die URL: https://api.wordnik.com/v4/word.json/apple/scrabbleScore?api_key=YOUR_API_KEY.
  2. API-Anfrage:

    • wait fetch(url) sendet eine HTTP-Anfrage an die Wordnik-API.
    • Antwortverarbeitung:
      • 200 (OK): Wenn die API den Status 200 zurückgibt, bedeutet dies, dass das Wort existiert und einen Scrabble-Score hat. Wir behandeln dies als gültiges Wort und geben true zurück.
      • 404 (Nicht gefunden): Wenn die API 404 zurückgibt, wurde das Wort nicht im Wörterbuch gefunden und wir geben „false“ zurück.
      • Jeder andere Statuscode wird als Fehler protokolliert und wir geben „false“ zurück, um anzugeben, dass das Wort ungültig ist oder ein Problem aufgetreten ist.

asynchrone Funktion descrambleWords()

Dies ist die Hauptfunktion, die das Eingabewort entschlüsselt und jede Permutation validiert.

  1. Eingabe erhalten:

    • Zuerst wird das verschlüsselte Wort mithilfe von document.getElementById('scrambledInput').value aus dem Eingabefeld abgerufen.
  2. Permutationen generieren:

    • Die Funktion ruft genericPermutations(input) auf, um alle möglichen Kombinationen des verschlüsselten Wortes zu generieren.
  3. Bestätigen Sie jedes Wort:

    • Dann durchläuft es jede Permutation und ruft isValidWord(word) auf, um zu prüfen, ob es gültig ist.
    • Wenn das Wort gültig ist (d. h. es in der Wordnik-API vorhanden ist), wird es dem validWords-Array hinzugefügt.

Building a Word Unscrambler with JavaScript (part 4)
Ich werde den Live-Link teilen, sobald ich eine Möglichkeit finde, meine API-Schlüssel zu sichern, bevor ich sie an GitHub weitergebe.

Eine weitere Hürde war die durch die Wordnik-API auferlegte Ratenbegrenzung. Als ich das Limit überschritten habe, trat beim Validierungsprozess der Fehler 429 (Too Many Requests) auf, wodurch alles gestoppt wurde. Eine mögliche Lösung, die ich in Betracht ziehe, besteht darin, eine Verzögerung hinzuzufügen, wenn das Limit erreicht ist, um eine Überlastung der API zu vermeiden.

Wenn Sie bessere Ideen oder Vorschläge haben, teilen Sie diese gerne in den Kommentaren mit oder kontaktieren Sie mich auf Twitter.

Als nächstes: Ich werde an der Optimierung der Leistung arbeiten, eine Lösung für die Ratenbegrenzung finden und sicherstellen, dass die Eingabe nur Zeichenfolgen und keine Zahlen akzeptiert.
Bleiben Sie dran für weitere Updates!

Das obige ist der detaillierte Inhalt vonErstellen eines Word-Unscramblers mit JavaScript (Teil 4). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn