很多人都会使用temp来交换两个变量,想起之前遭到社会毒打的一道题,如何不使用第三方变量实现两个变量交换?
第一种思想:利用数组,非常好理解,这里利用了数组的特性
let a = 1
let b = 2
a = [a, b]
b = a[0]
a = a[1]
console.log(a, b) //a = 2 b = 1
第二种思想:利用ES6的解构,非常容易!常用的交换,这里切记切记!!!!里面的那个;一定要加,要不然vscode识别不出来,之前就是这个坑给我卡自闭了😐
let c = 2
let d = 1;
[c, d] = [d, c]
console.log(c, d) //c = 1 d = 2
第三种思想:利用运算的思想,这里要想明白加减的差值
e=e+f 保存两个数的和 那么此时的e-f 就是要交换的e , 然后e - f 就是 交换的f
let e = 2
let f = 1
e = e + f
f = e - f
e = e - f
console.log(e, f)