JavaScript哈希映射是如何实现的?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (31)

我目前使用OpenLayers,并且有大量的数据可以绘制成向量层(大于100000向量)。

现在,我正在尝试将所有这些向量放入JavaScript哈希映射中,以分析性能。我想知道JavaScript中的哈希映射是如何实现的,是真正的哈希函数还是使用简单数据结构和搜索算法的包装函数?

提问于
用户回答回答于

每个javascript对象都是一个简单的hashmap,它只接受字符串值作为其键,因此你可以将代码编写为:

var map = {};
// add a item
map[key1] = value1;
// or remove it
delete map[key1];
// or determine whether a key exists
key1 in map;

JavaScript对象是其实现上的一个真正的hashmap,因此搜索的复杂性是O(1),但是没有专门的hashcode()函数,它在内部由javascript引擎(V8、SpiderMonkey、JScript.dll等)实现。

用户回答回答于

JavaScript对象不能完全在散列映射之上实现。

在浏览器控制台中尝试如下:

var foo = {
    a: true,
    b: true,
    z: true,
    c: true
}

for (var i in foo) {
    console.log(i);
}

扫码关注云+社区