2013-01-14 33 views
0

我想在下面返回rj: Object,並且我有一個匹配的索引鍵kid: 1。考慮主Object可以包含> 10k項目的最佳/最快方式是什麼?如何在javascript數組中深入查找索引並返回數組的其他部分?

Object 
coord: MM.Coordinate 
data: Object 
geometry: Object 
properties: Object 
    kid: 1   <== index id 
    rj: Object  <== object i want 
    __proto__: Object 
__proto__: Object 
element: HTMLDivElement 
location: MM.Location 
touch: true 
__proto__: Object 
+1

請問這個訪問對象主對象看起來像?這個對象是主要的嗎?或者這只是主要對象的入口? – Joseph

+0

對不起,它來自Chrome控制檯。頂部「對象」是主要的,是的。所以我會有10K的那些。然後,唯一標識符深入到Object [properties [kid]]中,我真正需要的對象是它的隔壁鄰居。 – knutole

+0

主要對象以某種方式排序?您是否需要通過其唯一ID找到多個項目? – Bergi

回答

1

如果您需要查找許多對象,則可以構建查找表。遍歷你的主要對象的集合,並把它們(簡單對象)存儲在一個鍵 - 值映射通過他們的標識符:

var mainsByKid = {}; // if the keys are integers (and not sparse), use an array 
for (var i=0; i<mains.length; i++) { 
    var main = mains[i], 
     key = main.properties.kid; // must be unique 
    mainsByKid[key] = main; 
} 

現在,你可以簡單地通過

mainsByKid[1]; 
+0

應該在對象上使用for-in循環,除非有問題的對象是數組。 – Joseph

+0

直到我們不知道集合如何看起來,我只能假設它是一個數組。已經提出您對這個問題的意見:-) – Bergi

+0

非常感謝,這是我需要的。變成我正在使用的mapbox.js已經實現了基本上完全相同的事情。再次感謝。 – knutole

相關問題