蓝狮注册Js如何交换两个变量的值,不用第三方变量

面试题
事情是这样的,我在看别人的面经的时候,看到了一道题:如何交换两个变量的值,蓝狮官网不用第三方变量。

我一开始想着,这不是很简单吗?

var a = 1
var b = 2

var temp = b
b = a
a = temp
这不就实现了两个变量的交换吗?但是我突然看到后面的限制条件:蓝狮注册不用第三方变量。

我擦。。。现在的面试题都这样了吗?这样有什么意义吗?但是我还是想了想怎么去实现这道面试题,毕竟,八股文也挺重要的。。

方法
1、解构赋值
使用ES6的数组解构赋值方法,实现两个变量的互换

[a, b] = [b, a]
2、加法、减法
首先来看加法

a = a + b // 算出总数
b = a – b // 得出 a 是多少,并赋值给 b
a = a – b // 得出 b 是多少,并赋值给 a
再来看看减法

a = a – b // 算出差
b = a + b // 得出 a 是多少,并赋值给 b
a = b – a // 得出 b 是多少,并赋值给 a
3、位运算
a = a ^ b
b = a ^ b // a ^ b ^ b = a
a = a ^ b // a ^ b ^ a = b

0 Comments
Leave a Reply