2010-07-27 6 views
1

Je souhaite utiliser la valeur d'une variable comme "index" d'un objet, d'une valeur à l'intérieur de celle-ci. Malheureusement, ce code ne sera pas exécuté.Utiliser la valeur de la variable comme index d'objet


      animatedObjects = { 
       userPosition.uid: { 
        "uid": userPosition.uid, 
        "x": 30, 
        "y": 31 
       } 
      } 

Où se passe-t-il?

+2

Un message d'erreur s'affiche-t-il? –

+0

Pouvez-vous s'il vous plaît poster plus de votre code et quelles valeurs les variables contiennent? Le deuxième exemple devrait fonctionner. –

Répondre

2

userPosition.uid ne fonctionne probablement pas. Il vous manque également une accolade de fermeture.

Voici un exemple minimal qui montre le fonctionnement du concept. Si vous avez userPosition.uid, votre exemple est tout bon. Vérifiez que vous pouvez sortir seulement userPosition.uid.

a = {} 
b = {c: 3} 
a[b.c] = 5 
a // now equal to {3: 5} 
+0

En effet, je dois avoir fait quelque chose de mal avec userPosition.uid, parce que cette méthode fonctionne maintenant. – skerit

0
animatedObjects = { 
    userPosition.uid: { // pos 1 
    "uid": userPosition.uid, // pos2 
      "x": 30, 
      "y": 31 
    } 
} 

Cela ne peut pas fonctionner. Tout d'abord, en position 1, vous avez probablement dire

animatedObjects = { 
    userPosition:{ 
     uid : 
    } 
} 

sinon vous créez animatedObjects['userPosition.uid'] au lieu de animatedObjects.userPosition.uid. Deuxièmement, en pos 2, vous essayez d'initialiser une variable avec l'objet que vous venez de créer. Cela ne peut pas fonctionner, car il n'y a pas de référence pour passer. (Il n'y a pas de contexte this dans un objet plaine, vous ne pouvez les passer que par référence lors de leur création, mais pas lors de la création).

Questions connexes