我目前在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对象在其实现上是一个真正的哈希表,因此搜索的复杂度为O(1),但没有专用hashcode()的javascript字符串函数,它是由javascript引擎内部实现的(V8,SpiderMonkey,JScript.dll等)。 )
hashcode()
但是,今天的javascript不支持其他数据类型,只有字符串作为键,ECMAv6(和声)会引入一个WeakMap类,该类接受任何对象作为键,但是要花很长时间…