面试题
事情是这样的,我在看别人的面经的时候,蓝狮注册登陆看到了一道题:如何交换两个变量的值,不用第三方变量。
我一开始想着,这不是很简单吗?
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