从对象列表中获取数据的最有效方法?

从对象列表中获取数据的最有效方法?

问题描述:

我有这样的对象列表(从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。

什么是最有效的方法来做到这一点?

如果它们是唯一的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