何时在 hashmap 上使用对象

问题描述 投票:0回答:1

https://leetcode.com/problems/roman-to-integer/solutions/4127892/beats-99-99-easy-solution-with-o-n-approach-c-python-java-javascript/

我正在 Leetcode 上查看这个使用“哈希图”的解决方案。我做了一些研究,发现 JavaScript 中没有官方的 hashmap,但有一个映射和一个不同的对象。我仍在学习两者之间的区别。

我的问题是为什么在这个例子中使用一个对象?这是正确的做法还是使用地图会更专业?

我认为这是不正确的,因为对象用于存储个性化数据,但在这里我们像地图一样使用它。

javascript object hashmap
1个回答
1
投票

我的问题是为什么在这个例子中使用一个对象?这是正确的做法还是使用地图会更专业?

如果你需要哈希映射,使用

Map
会更专业,主要出于以下原因:

  • A
    Map
    默认情况下不包含任何键。它只包含显式放入其中的内容,但 An
    Object
    有原型,因此它包含默认键,如果您不小心,可能会与您自己的键发生冲突。 注意:这可以通过使用
    Object.create(null)
    来绕过,但很少这样做。
  • A
    Map
    的键可以是任何值(包括函数、对象或任何原语)。
    Object
    的键必须是
    String
    Symbol
  • A
    Map
    是一个可迭代对象,因此可以直接迭代。正如您的示例所示,您需要这个属性。
  • A
    Map
    在频繁添加和删除键值对的场景中表现更好。

参考:MDN

© www.soinside.com 2019 - 2024. All rights reserved.