所以我们有一个案例,我们会有一些JSON,其中key是id(int),值是字符串.但是我们注意到大多数时候,我们根据字符串查找id,所以我们决定将其反转并将字符串作为键,值为id.因为这样而不是遍历每个项目并比较值,我们可以这样做var id = storage[text];.以下是我们所做的例子.
这是旧实现的示例:
var storage = {
0 : null,
1 : "Hello",
2 : "world!",
3 : "How are you?"
}
Run Code Online (Sandbox Code Playgroud)
以下是新实现的示例:
var storage = {
"null" : 0,
"Hello" : 1,
"world!" : 2,
"How are you?" : 3
}
Run Code Online (Sandbox Code Playgroud)
我知道现在字符串是键,并且可以为相同的字符串获取相同的id.但是从现在开始字符串可能非常巨大(机会很小,但每个字符串可能最大1KB),JS或Android webview是否存在长度限制对象键?
而且,这种实施有缺点吗?到目前为止我没有发现任何问题,但你永远都不知道.
JavaScript属性访问的性能特征是什么(在当前实现上)?
如果我使用一个对象作为哈希表(使用字符串键),我可以安全地假设O(1)或O(log n)访问时间吗?
是否有任何常见的浏览器或环境比其他浏览器或环境明显更快/更慢,我应该留意?
JavaScript标准有什么要说的吗?
最重要的是: