Versuchen Sie jOrder. http://github.com/danstocker/jorder
Es ist optimiert für schnelle O (Logn) Suche und Sortierung auf großen (Tausende von Zeilen) Tabellen in JS.
Im Gegensatz zur Array-Iteration, auf der die meisten Antworten basieren, verwendet jOrder Indizes zum Filtern von Daten. Um Ihnen eine Idee zu geben, ist die Freitextsuche in einer Tabelle mit 1000 Zeilen ungefähr 100 Mal schneller als die Iteration. Je größer der Tisch, desto besser das Verhältnis.
Allerdings kann jOrder das Format Ihrer Beispieldaten nicht verarbeiten. Aber wenn Sie neu formatiert es wie folgt aus:
var teams =
[
{ sport : "soccer", team: "FC Barcelona" },
{ sport : "soccer", team: "Liverpool FC" },
{ sport : "basketball", team : "Dallas Mavericks"}
]
Sie können die gewünschten Ergebnisse erzielen, indem zunächst eine Jörder Tabelle einrichten:
var table = jOrder(teams)
.index('teams', ['team'], { grouped: true, ordered: true, type: jOrder.text });
Und dann eine Suche auf es ausgeführt wird:
var hits = table.where([{ team: 'FC' }], { mode: jOrder.startof });
Und Sie erhalten genau die zwei Reihen, die Sie benötigten. Das ist es.
Was ist ein JSON-Objekt? Du meinst, du hast einen JSON * string *? –
Er hat natürlich ein JavaScript-Objekt. Ich nehme an, er sagte, dass es JSON ist, weil er einen Server nach JSON oder JSONP gefragt hat. :-) – Nosredna