Javascript中对象扩散运算符的时间复杂度是多少



我发现有一些关于扩展运算符时间复杂性的QA,但这些都是针对数组的。

对象的扩散算子时间复杂度相同吗?

a = { ...b }

如果b的密钥计数为N,那么上述语句的时间复杂度是多少?

是O(N(吗?

它是O(n)。Object spread遍历所有可枚举的自身属性,并将它们分配给一个新对象,而属性分配是一个O(1)过程。如果有N个键要迭代,那么大约有N个这样的操作要执行。

也就是说,这在99.9%的实际代码中不会成为瓶颈,所以不值得担心。

最新更新