我发现有一些关于扩展运算符时间复杂性的QA,但这些都是针对数组的。
对象的扩散算子时间复杂度相同吗?
a = { ...b }
如果b的密钥计数为N,那么上述语句的时间复杂度是多少?
是O(N(吗?
它是O(n)
。Object spread遍历所有可枚举的自身属性,并将它们分配给一个新对象,而属性分配是一个O(1)
过程。如果有N个键要迭代,那么大约有N个这样的操作要执行。
也就是说,这在99.9%的实际代码中不会成为瓶颈,所以不值得担心。