我正在 Leetcode 上查看这个使用“哈希图”的解决方案。我做了一些研究,发现 JavaScript 中没有官方的 hashmap,但有一个映射和一个不同的对象。我仍在学习两者之间的区别。
我的问题是为什么在这个例子中使用一个对象?这是正确的做法还是使用地图会更专业?
我认为这是不正确的,因为对象用于存储个性化数据,但在这里我们像地图一样使用它。
我的问题是为什么在这个例子中使用一个对象?这是正确的做法还是使用地图会更专业?
如果你需要哈希映射,使用
Map
会更专业,主要出于以下原因:
Map
默认情况下不包含任何键。它只包含显式放入其中的内容,但 An Object
有原型,因此它包含默认键,如果您不小心,可能会与您自己的键发生冲突。
注意:这可以通过使用 Object.create(null)
来绕过,但很少这样做。Map
的键可以是任何值(包括函数、对象或任何原语)。 Object
的键必须是 String
或 Symbol
。Map
是一个可迭代对象,因此可以直接迭代。正如您的示例所示,您需要这个属性。Map
在频繁添加和删除键值对的场景中表现更好。参考:MDN