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

摘要:事情是这样的,我在看别人的面经的时候,看到了一道题:如何交换两个变量的值,不用第三方变量。使用ES6的数组解构赋值方法,实现两个变量的互换

面试题

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

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

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

来源:前端之神


本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_12040