1. Eigentlich wollte ich beide Arrays mit .equals() vergleichen.
equals ist keine native JavaScript Methode. Aus welcher Library ist die?
edit: Ich verstehe...
Stattdessen funktioniert es aber mit dem Vergleichsoperator ==. Soll das so?
Du meinst hier:
splittedEingabe[j].toLowerCase() == wortliste[i]
Ja, das soll so sein. (Was wundert dich denn daran?)
2. Das eigentliche Problem ist allerdings, dass das Programm niemals in den if-Teil springt, selbst wenn ich ein exaktes Wort aus der Liste verwende. Es kommt immer die Ausgabe aus dem else-Teil. Als ich die Eingabe noch nicht in substrings gesplitted hatte, ging das mit einem Wort allerdings problemlos.
Hast du die Funktion schonmal gedebuggt? (Für den Anfang schreib mal Konsolenausgaben in jeden If-Zweig).
War das vorher nur eine einfache Schleife?
Das Problem, dass du hast, ist, dass break nur aus der Inneren Schleife springt und dann mit dem nächsten Eintrag der Wortliste weitermacht.
Wenn das letzte Wort in der Wortliste kein Treffer ist, siehst du nur die Ausgabe aus dem else-Zweig, denn die Ausgabe wird jedes Mal überschrieben.
Ich würde dir vorschlagen, statt das Ergebnis direkt in dein HTML zu schreiben, in deiner Schleife ein Ergebnisobjekt zu füllen, das jeden Eintrag deines Wortarrays auf einen boolischen Wert mappt, der anzeigt, ob das Wort gefunden wurde oder nicht.
Das würde dann so in etwa aussehen:
var ergebnis = {
"5g": true, // Hier gab es einen Treffer
strahlung: false,
"5g-strahlung": false,
auswirkung: false,
auswirkungen: false,
gefahr: false,
gefahren: true, // Hier gab es einen Treffer
risiken: true, // Hier gab es einen Treffer
gesundheit: false,
gesundheitliche: false,
risiko: false,
massenexperiment: false,
elektrosmog: false,
};
Alles anzeigen
Wenn das Objekt erstellt wurde, kann man es dann auswerten.
Wenn es nur um Treffer oder nicht geht, würde ich dir empfehlen eine Boolische Variable zu deklarieren mit false zu initialisieren und wenn ein Begriff gefunden wurde, auf true zu setzen:
var treffer = false;
for (/*...*/) {
for (/*...*/) {
if (/* Wenn ei Begriff gefunden wurde */) {
treffer = true;
}
}
}
// NACH der Schleife erfolgt die Auswertung:
if (treffer) {
/*...*/
} else {
/*...*/
}
Alles anzeigen