Optimierung der Suche durch große js string-array?

wenn ich ein großes javascript-string-array, hat über 10.000 Elementen,
wie kann ich schnell durchsucht?

Momentan habe ich ein javascript-string-array, speichert die Beschreibung eines Jobs,
und ich"m so dass der Benutzer zum dynamischen filtern der zurückgegebenen Liste als Eingabe in ein Eingabefeld.

Also sagen, ich habe ein string-array wie folgt:

var descArr = {"flipping burgers", "pumping gas", "delivering mail"};

und der Benutzer möchte, um die Suche für: "p"

Wie ich wäre in der Lage zu suchen, ein string-array, 10000+ Beschreibungen in es schnell?
Offensichtlich kann ich nicht Sortieren Sie die Beschreibung array, da Sie Beschreibungen, so binäre Suche ist out. Und da kann der Benutzer die Suche durch "p" oder "pi" oder einer beliebigen Kombination von Buchstaben, diese Teil-Suche bedeutet, dass ich nicht verwenden kann assoziative arrays (d.h. searchDescArray["pumping gas"] )
um die Suche zu beschleunigen.

Irgendwelche Ideen, jedermann?

  • Sie wollen passen Sie die Suche am Anfang des strings oder innerhalb von Zeichenfolgen? Wenn der Benutzer die Suche nach "p", sollte es "flipping burgers" in die Ergebnis?
  • descArr ist kein array, sondern ein Objekt-literal.
  • Ja, wenn der Benutzer sucht nach "p" sollte es "flipping burgers" in die Folge. Ich finde, dass die größte slow down jetzt ist die eigentliche Suche. Aktuell habe ich einen forloop, dass er iteriert über das array und das tut dieser Vergleich: if (descArray[i].Suche("P")) > -1){ //Ergebnis zurückgeben}
  • Tun Sie es mit RegExp - Beispiel: jsfiddle.net/RnabN/4 (30k Streicher, max 100 Ergebnisse)
InformationsquelleAutor TriFu | 2010-10-20
Schreibe einen Kommentar