哈希表与 javascript 中的对象
Hashtable vs objects In javascript
我是数据结构的新手,我正在 Javascript 学习它。
我的问题是:
为什么我们在 javascript 中有对象时需要哈希表?
谁能给我一个哈希表比对象更有用的情况?
"Hashtable"在不同的语言中被称为不同的东西。 Java 有 Hashtable
和 HashMap
,Ruby 有 Hash
,Python 有 dict
... 在 Java脚本,叫做Map
.
对象的键仅限于字符串; Map
键可以是任何东西。
对象支持继承; a Map
只包含具体放入其中的内容。
您认为您指的是 Map 而不是 HashTable。如果您需要其中之一,恕我直言地图可能会更有用并且性能更好:
- 保持 key/value 对的插入顺序;
- 频繁添加和删除;
- 不是 String/Symbol 的键。
我想你可以在 MDN
获得更多信息
这方面的 MDN 文档很有帮助:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#Objects_and_maps_compared
最值得注意的是,使用地图可以让您使用任何东西作为键,地图保持顺序,并且在不断添加和删除值时可能表现更好。
我是数据结构的新手,我正在 Javascript 学习它。
我的问题是: 为什么我们在 javascript 中有对象时需要哈希表? 谁能给我一个哈希表比对象更有用的情况?
"Hashtable"在不同的语言中被称为不同的东西。 Java 有 Hashtable
和 HashMap
,Ruby 有 Hash
,Python 有 dict
... 在 Java脚本,叫做Map
.
对象的键仅限于字符串; Map
键可以是任何东西。
对象支持继承; a Map
只包含具体放入其中的内容。
您认为您指的是 Map 而不是 HashTable。如果您需要其中之一,恕我直言地图可能会更有用并且性能更好:
- 保持 key/value 对的插入顺序;
- 频繁添加和删除;
- 不是 String/Symbol 的键。
我想你可以在 MDN
获得更多信息这方面的 MDN 文档很有帮助:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#Objects_and_maps_compared
最值得注意的是,使用地图可以让您使用任何东西作为键,地图保持顺序,并且在不断添加和删除值时可能表现更好。