【发布时间】:2011-10-02 08:53:40
【问题描述】:
我想创建一个对象,从以下内容开始:
var map = {};
然后,我想用这个功能添加项目:
add = function(integerA, objectB) {
map[objectB.type][integerA] = objectB;
}
所以,这是我想要实现的对象结构的一个随机示例:
map = {
'SomeType' : { 0 : 'obj', 2 : 'obj', 3 : 'obj' },
'OtherType' : { 0 : 'obj', 5 : 'obj' },
};
现在,我的问题。我不能做map[objectB.type][integerA] = objectB; 因为map[objectB.type] 没有定义。我可以通过 if 语句检查 map[objectB.type] 是否存在并在必要时创建 map[objectB.type] = {}; 来解决这个问题。
否则我可以预加载所有对象类型。不过我宁愿不必这样做。
我的问题:有没有一种方法可以“即时”创建对象,而不必在每次我想调用 add 函数或预加载所有类型时检查类型是否已经存在?
重要的是我的 add 函数尽可能快并且地图对象正确,因为我需要在很短的时间内进行大量读写(这是一个动画/游戏应用程序)。
【问题讨论】:
-
您确定这是性能问题吗?如果我是你,我会先尝试一下,看看它是否有问题。归根结底,要么您需要进行检查,要么需要 javascript 引擎,因此无论如何都需要处理指令
-
这个链接有你的问题的答案stackoverflow.com/questions/7744611/…
标签: javascript object multidimensional-array