2010-11-04 6 views
0

J'écris une application où j'ai beaucoup d'objets (modèles de données) qui sont identifiés par un ID de chaîne unique que chaque objet possède et ces objets peuvent se référer les uns aux autres par leurs ID. Jusqu'ici tout va bien mais maintenant je dois garder la trace de l'objet qui garde une référence à un autre objet et bien sûr il y a des cas où un objet référence (ou est référencé par) plus d'un autre objet et je me demandais ce que serait la meilleure méthode pour stocker ces références? Dans une structure de données cartographiques simple, je peux simplement mapper l'ID d'un objet à un autre, mais comme mentionné, il y a des cas où un objet peut contenir une référence à une quantité arbitraire d'autres objets. Ou je pourrais mapper une autre carte ou un tableau qui contient plus d'une référence, mais je voudrais empêcher l'itération et peut-être que quelqu'un connaît une meilleure solution pour cela.La meilleure façon de mapper des références d'ID d'objet?

Répondre

1

Je suppose que cela dépend beaucoup de l'utilisation particulière, mais je pense qu'un dictionnaire est la voie à suivre, sauf si vous avez besoin de l'ordre des références, auquel cas je pense qu'un tableau (ou vecteur) devrait fonctionner. .

//Array: 
object1.references.push(object2); 
for each(var o in object1.references) trace(o); 
object1.references.pop(); 

//Dictionary: 
object1.references[object2] = 1; 
for (var o in object1.references) trace(o); 
delete object1.references[object2]; 

Chaque fois que vous avez un ensemble arbitraire dynamique d'objets, je pense que vous aurez forcément besoin d'itérer à travers eux, si son un tableau, un objet ou un dictionnaire.

+0

Merci Cay! Oui, cela semble être le chemin à parcourir. Probablement pas moyen d'itéter sur les objets, d'une manière ou d'une autre. – BadmintonCat

Questions connexes