javascript - JavaScript HashMap 是如何实现的?

标签 javascript hash hashmap

我目前使用 OpenLayers 并有大量数据要绘制到矢量图层中(超过 100000 个矢量)。

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

最佳答案

每个javascript object是一个简单的 hashmap,它接受一个字符串或一个 Symbol。作为它的关键,所以你可以把你的代码写成:

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),但是javascript字符串没有专门的hashcode()函数,它是javascript内部实现的引擎(V8、SpiderMonkey、JScript.dll 等...)

2020 年更新:

javascript 今天也支持其他数据类型:MapWeakMap .与传统对象相比,它们更像 HashMap 。

关于javascript - JavaScript HashMap 是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8877666/

相关文章:

javascript - 浏览器的 "Previous"按钮位置改变了吗?

javascript - 给定规则组合的正则表达式

c++ - 如何使用 c++ 将字符串散列为 int?

C++ 性能问题

java - 如何从 HashMap 中删除重复值

javascript - 为什么在字符串化并解析回对象后缺少 getter/setter?

javascript - 为什么我的 switch 语句运行多个 case?

perl - 从哈希 perl 写入 CSV 文件

java - 如何迭代hashmap并将实体存储到mysql中

java - 在 Java 8 中替换映射中列表列表中的值