我刚接触数据结构,正在学习JavaScript。
我的问题是: 既然我们已经有了JavaScript中的对象,为什么还需要哈希表? 有没有人能给我一个哈希表比对象更有用的情况?
我刚接触数据结构,正在学习JavaScript。
我的问题是: 既然我们已经有了JavaScript中的对象,为什么还需要哈希表? 有没有人能给我一个哈希表比对象更有用的情况?
在不同的编程语言中,“Hashtable”的称呼是不同的。Java 有 Hashtable
和 HashMap
,Ruby 有 Hash
,Python 有 dict
......而在 JavaScript 中,则称之为 Map
。
对象的键仅限于字符串;Map
的键可以是任何类型。
对象支持继承;而 Map
只包含明确放入其中的内容。
我想你的意思是使用 Map 而不是 HashTable。在我看来,如果需要以下功能之一,Map 可能更有用且性能更好:
我认为您可以在MDN上获得更多信息。
最值得注意的是,使用地图可以让您使用任何内容作为键,地图保留顺序,并且在不断添加和删除值时可能表现更好。