javascript - 物体速度[属性]

标签 javascript performance set

我想通过将它们插入某个集合来关注“哪些对象已经被处理”。
由于 JavaScript 中没有类型 Set,我将使用 Object,如 Mimicking sets in JavaScript? 中所述
所以问题是:这个字典检查是否取决于已经插入我的 Set 对象的对象数量?是 O(N) 还是 O(1)?

最佳答案

答案肯定因 JS 引擎而异。关于 V8,检查速度确实取决于对象的数量(==“设置”对象属性计数),但它仍然是 O(1)。否则,任何相当大的 Web 应用程序都无法足够快地运行。

关于您引用的 SO 问题,如果可能,请勿使用 if ("foo"in A) 来检查元素是否存在 - 这将遍历整个原型(prototype)链,因此您将得到一个性能影响,很可能会发现很多不应该存在的对象(比如 toString)。尽可能使用 A.hasOwnProperty("foo")

关于javascript - 物体速度[属性],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9992187/

相关文章:

sql - 使用 GROUP BY 与 DISTINCT 时的巨大性能差异

performance - CSS3 过渡 : Is "transition: all" slower than "transition: x"?

python - 为什么 Python 的集差法对空集会耗时?

haskell - 编写一个构造集合的递归函数

Python简洁性: Comparing string to multiple sets with return value

java - 如何迭代和修改 Java 集?

javascript - 无法从嵌套 Json 数据中检索数据

javascript - 否则如果在 JavaScript 中

javascript - 使用 javascript 删除 HTML h1 空标签

javascript - React-Router 使用 jQuery 浏览路由