2012-04-13 121 views
0

我有這樣的對象列表(從PHP,然後JSON編碼創建):從對象列表中獲取數據的最有效方法?

{"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"] 

但是我試圖找到一種方式來獲得X:通過尋找UNIQUE_IDŸ可以說這是4。

什麼是最有效的方法來做到這一點?

回答

1

如果它們是唯一的ID,請創建一個單獨的查找表。

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

所以爲了減輕負載 - 最好創建仰望預負荷的話,我可以搜索它,當我需要它? :) – Sir 2012-04-13 22:46:32

+0

@Dave:是的,你創建一次查找表,然後使用它。或者如果可能的話,您可以在服務器端創建它,並將其作爲單獨的JSON結構發送。 – 2012-04-13 22:47:37

+0

嗯理想情況下寧願用戶的PC做的工作,而不是我的服務器:Phehe – Sir 2012-04-13 22:49:50

相關問題