2013-01-14 2 views
0

Je veux retourner rj: Object ci-dessous, et j'ai une clé d'index pour correspondre, kid: 1. Quel est le meilleur/moyen le plus rapide de prendre en considération le principal Object peut contenir> 10k articles?Comment trouver l'index profond dans un tableau javascript et retourner une autre partie du tableau?

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

Comment ce ressemble à l'objet principal? Cet objet est-il le principal? ou est-ce juste une entrée de l'objet principal? – Joseph

+0

Ah, désolé, c'est à partir de la console Chrome. Top 'Object' est principal, oui. Donc, je vais avoir 10k de ceux-là. Alors l'identifiant unique est profond dans 'Object [propriétés [kid]]', et l'objet que je veux réellement est son prochain voisin. – knutole

+0

L'objet principal est-il trié d'une manière ou d'une autre? Avez-vous besoin de trouver plus d'un article par son identifiant unique? – Bergi

Répondre

1

Si vous avez besoin de trouver plusieurs objets, vous pouvez créer une table de recherche. Itérer sur votre collection d'objets principaux, et de les stocker dans une valeur-clé-carte (objet simple) par leur identifiant:

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; 
} 

Maintenant, vous pouvez simplement accéder à votre objet en

mainsByKid[1]; 
+0

une boucle for-in devrait être utilisée sur les objets, sauf si l'objet en question est un tableau. – Joseph

+0

Jusqu'à ce que nous ne sachions pas à quoi ressemble vraiment la collection, je ne peux que supposer que c'est un tableau. Avait déjà voté vos commentaires sur la question :-) – Bergi

+0

Merci beaucoup, c'est ce dont j'ai besoin. Il s'avère que mapbox.js avec lequel je travaille avait déjà implémenté la même chose. Merci encore. – knutole

Questions connexes