Hallo,
... eine Kniffel-Aufgabe !
Ich möchte per Javascript ein Array "daten" durchsuchen lassen, wobei das Suchwort jeweils der Wert eines Textfeldes ist.
//
var daten = new Array();
daten[0] = new Array("Ziel1.html","Haus Auto Boot");
daten[1] = new Array("Ziel2.html","Pferd");
daten[2] = new Array("Ziel3.html","Auto Apfel Hirn Haus");
daten[3] = new Array("Ziel4.html","Boot Pferd");
//
Ich habe zunächst einen Regulären Ausdruck definiert ...
reg = new RegExp(textfeld.value,"i");
... und lasse über eine for-Schleife und die Methode test() das jeweils zweite Element eines Datensatzes nach dem gesuchten Begriff durchsuchen. Bei Übereinstimmung wird der jeweils erste Element eines Datensatzes - hier eine URL - ausgegeben.
Kurz: zu jeder URL gibt es eine Reihe von Schlagworten, die das Zieldokument beschreiben; diese Aufstellung von Schlagworten soll durchsucht werden können.
Springender Punkt:
Enthält das Textfeld EIN Suchwort (z.B. "Auto") klappt die Suche auch wunderbar:
im Fall "Auto" heißt das: ausgegeben wird korrekt daten[0][0] und daten[2][0].
Enthält das Textfeld MEHRERE Suchwörter (z.B. "Haus Auto"), wird nur daten[0][0] ausgegeben, weil nur hier die beiden Suchwörter in genau der Reihenfolge auftauchen; daten[2][0] wird ignoriert, obwohl hier auch die zwei Suchwörter "Haus" und "Auto" vorkommen - nur in einer anderen Reihenfolge.
Logisch - aber unerwünscht ...
Gibt es eine Möglichkeit, das Array auch nach mehreren Begriffen gleichzeitig zu durchsuchen, ohne das die Reihenfolge der Suchbegriffe dabei eine Rolle spielt ?
Für Ansätze und Vorschläge besten Dank vorab
Mfg Reiter