Javascript: multi-dimensionnelle de l'objet

Je veux créer un objet, en commençant par quelque chose comme:

var map = {};

Alors, je veux ajouter des éléments avec cette fonction:

add = function(integerA, objectB) {
    map[objectB.type][integerA] = objectB;
}

Donc, c'est un hasard de la structure de l'objet que je veux réaliser:

map = {
    'SomeType' : { 0 : 'obj', 2 : 'obj', 3 : 'obj' },
    'OtherType' : { 0 : 'obj', 5 : 'obj' },
};

Maintenant, mon problème. Je ne peux pas faire map[objectB.type][integerA] = objectB; parce que map[objectB.type] n'est pas défini. J'ai pu résoudre ce problème en vérifiant si map[objectB.type] existe par le biais d'un if et créer map[objectB.type] = {}; lorsque nécessaire.

Sinon je ne pourrais pré-charge tous les types d'objet. Cependant, je préfère ne pas avoir à le faire.

Ma question: est-il possible que je peux créer l'objet "à la volée", sans avoir à vérifier si le type existe déjà à chaque fois que je veux l'appeler le add fonction ou à pré-charger tous les types?

Il est important que ma fonction d'ajout est tellement rapide que possible et que l'objet map est correcte, parce que j'ai besoin de lire et d'écrire beaucoup de choses en peu de temps (c'est une animation /application de jeu).

êtes-vous sûr que ce sera un problème de performance? si j'étais vous, j'essaierais d'abord et voir si c'est un problème. à la fin de la journée, vous aurez besoin de faire le chèque, ou le moteur javascript, de sorte que les instructions doivent être traitées de toute façon
ce lien a la réponse pour ur de la question stackoverflow.com/questions/7744611/...

OriginalL'auteur user8363 | 2011-07-10