【问题标题】:What is the time complexity of Map.prototype.size in JavaScript?JavaScript 中 Map.prototype.size 的时间复杂度是多少?
【发布时间】:2021-02-10 18:17:01
【问题描述】:

这是该方法的链接,只是想弄清楚时间复杂度与对数组执行 .length 的比较。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/size

【问题讨论】:

  • 这是一个非常有趣的问题,谢谢!

标签: javascript dictionary ecmascript-6 time-complexity


【解决方案1】:

根据规范,Array length 是一个简单的只读数据属性,而 Map size 是一个访问器属性,它通过遍历 Map 条目列表来计算项目数。

实际上,我希望 size 被 JavaScript 引擎优化,因此它不必每次都循环遍历列表,但循环是规范定义的。

所以理论上“JavaScript 中 Map.prototype.size 的时间复杂度是多少?” 的答案是 O(n),但我敢打赌,实际情况比这要好得多。

【讨论】:

  • 很有趣,但是在检查用户创建的对象的大小时,您肯定需要遍历整个对象以进行每次大小检查,对吧?
  • @mek24 - 如果你不做任何事情来避免它(这是可能的,但很痛苦),是的,你会的。我猜Map 的部分优势在于,如果这是您需要的信息,那么您有可能/可能会在 JS 引擎中进行优化...
猜你喜欢
  • 2017-03-19
  • 1970-01-01
  • 2018-11-24
  • 2014-05-27
  • 1970-01-01
  • 1970-01-01
  • 2021-11-18
  • 2012-02-13
  • 2016-08-21
相关资源
最近更新 更多