我知道可以通过赋值结构的方式交换,想请教下第二种方式为什么不可以?
let arr1 = [1, 2];
[arr1[0], arr1[1]] = [arr1[1], arr1[0]];
console.log(arr1); // [2, 1]
let arr = [1, 2];
arr[0], arr[1] = arr[1], arr[0];
console.log(arr); // [1, 2]
逗号是个操作符。
这行代码的意思是先执行arr[0], 再执行arr[1] = arr[1], 最后返回 arr[0]。
所以其实相当于啥都没做。。。
你可以试试以下代码就知道了