使用变量值作为对象索引

时间:2010-07-27 19:31:42

标签: javascript arrays object indexing

我想使用变量的值作为对象的“索引”,它是其中的值。 不幸的是,这段代码不会运行。


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

哪里出错?

2 个答案:

答案 0 :(得分:2)

userPosition.uid可能无效。你也错过了一个大括号。

这是一个显示工作概念的最小例子。如果你有userPosition.uid工作,你的榜样一切都很好。检查您是否可以输出userPosition.uid

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

答案 1 :(得分:0)

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

这不起作用。首先,在pos 1中,你可能意味着

animatedObjects = {
    userPosition:{
        uid : 
    }
}

否则您正在创建animatedObjects['userPosition.uid']而不是animatedObjects.userPosition.uid

其次,在pos 2中,您尝试使用刚创建的对象初始化变量。这不起作用,因为没有参考传递。 (普通对象中没有this上下文,只能在创建时通过引用传递它们,但在创建时不能通过引用传递它们。