我想通过将它们插入某个集合来关注“哪些对象已经被处理”。
由于 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/