2

我正在用 Javascript 构建一个实体系统。它基本上是一种由组件组成世界对象的技术,例如“位置”或“精灵”。这些组件只保存数据,它们只有次要的方法。

我在一种数据库中实现它,实体只是一个用于获取组件实例的 id。

“数据库”是一个字典,看起来像这样:

{
    "ComponentType": ComponentInstances
}

一个 Component 实例是这样访问的:db[componentType][entityId].

我担心对于 entityId 最有效的数据类型是:字符串还是数字?这些类型在 Javascript 中占用多少内存(我知道它会有所不同,但即使是估计也会有用)?

当然,如果是字符串,则数据库将像字典字典一样实现,如果是数字,则数组字典(没关系,因为两者都是对象)。

编辑:与参考相比,字符串和数字有多少内存?他们更有效率吗?

4

1 回答 1

3

虽然从概念上讲,数字和字符串在用作键时都被视为相同(在 Javascript 中键始终被视为字符串 - x[0] 和 x["0"] 返回相同的值),但最近的实现将特殊情况下的数字键并将它们存储在一个连续的数组中。

因此,如果我是你,我会选择连续的数字索引。

于 2012-07-24T21:40:22.497 回答