使用ES6,您可以使用以下表示法交换数组元素:
let a = [1, 2, 3, 4];
[a[0], a[1]] = [a[1], a[0]];
console.log(a); // [2, 1, 3, 4];
但我很想知道这个的时间/空间复杂度。
如果这只是语法糖:
var temp = a[0];
a[0] = a[1];
a[1] = temp;
我认为时间和空间复杂度都是O(1)。
即使我们在创建一个全新的数组来进行解构和赋值,由于我们只是交换了几个元素,所以时间和空间复杂度仍然是常数级别的。这样说对吗?