Javascript中对象展开算子的时间复杂度是多少?
What is the time complexity of object spread operator in Javascript?
我发现有一些关于扩展运算符时间复杂度的 QA,但这些都是针对数组的。
对象的展开运算符时间复杂度是否相同?
a = { ...b }
如果b的key数为N,上述语句的时间复杂度是多少?
是O(N)吗?
是O(n)
。 Object spread遍历所有可枚举的自身属性,并赋值给一个新的对象,属性赋值是一个O(1)
过程。如果有 N 个键要迭代,则大约有 N 个这样的操作要执行。
也就是说,这里99.9%的实际代码都不会成为瓶颈,所以不用担心。
我发现有一些关于扩展运算符时间复杂度的 QA,但这些都是针对数组的。
对象的展开运算符时间复杂度是否相同?
a = { ...b }
如果b的key数为N,上述语句的时间复杂度是多少?
是O(N)吗?
是O(n)
。 Object spread遍历所有可枚举的自身属性,并赋值给一个新的对象,属性赋值是一个O(1)
过程。如果有 N 个键要迭代,则大约有 N 个这样的操作要执行。
也就是说,这里99.9%的实际代码都不会成为瓶颈,所以不用担心。