2012-04-13 2 views
0

Ich habe eine Liste von Objekten, wie diese (erstellt von PHP dann json codiertem):Der effizienteste Weg, um Daten aus einer Liste von Objekten zu erhalten?

{"10":{"10":["4","7","2","2","0","32"],"11":["5","22","1","1","0","0"]}} 

translated: 

{"X":{"Y":["unique_id","data","data","data","data","data"],"Y":["unique_id","data","data","data","data","data"] 

Aber im Versuch, einen Weg zu finden, die X zu erhalten: Y von der Suche nach dem unique_id können sagen, dass es 4 ist.

Was wäre der effizienteste Weg, dies zu tun?

Antwort

1

Wenn sie eindeutige IDs sind, erstellen Sie eine separate Nachschlagetabelle.

var id_lookup = {}; 

for(var x in data) 
    for(var y in data[x]) 
     id_lookup[data[x][y][0]] = [x,y] 

var coords = id_lookup[4]; 

alert(coords); // [10,10] 

alert(data[coords[0]][coords[1]]); // ["4","7","2","2","0","32"] 

DEMO:http://jsfiddle.net/LXE3B/

+0

Also, um Last zu reduzieren - am besten die auf Vorbelastung aufblicken erstellen dann kann ich es suchen, wenn ich es brauchen? :) – Sir

+0

@Dave: Ja, Sie erstellen die Nachschlagetabelle einmal und verwenden sie danach. Oder, wenn möglich, könnten Sie es auf der Serverseite erstellen und es als separate JSON-Struktur senden. –

+0

Hmm idealerweise würde eher der PC des Benutzers die Arbeit machen als mein Server: P hehe – Sir

Verwandte Themen