JavaScript中交换值的3种方法总结!!!


前言:
——小峯
在开发过程中又是我们需要对值进行交换。一般我们都在用一种简单的解决方案:“临时变量”。不过还有更好的办法,而且不只有一个,有很多。有时我们在网上搜寻解决方案,找到后复制粘贴,但是从没想过这小段代码是怎样工作的。现在我们该学习一下应该怎样轻松高效地交换值了。

1 使用临时变量

先是最简单的一种

function swapWithTemp(num1,num2){
 console.log(num1,num2)

 var temp = num1;
 num1 = num2;
 num2 = temp;

 console.log(num1,num2)
}

swapWithTemp(2.34,3.45)

2 使用算术运算符 + 和 -

还可以用一些数学魔术来交换值。

function swapWithPlusMinus(num1,num2){
 console.log(num1,num2)

 num1 = num1+num2;
 num2 = num1-num2;
 num1 = num1-num2;

 console.log(num1,num2)
}

swapWithPlusMinus(2.34,3.45)

让我们来看看它是如何工作的。我们在第 4 行获得两个数字的总和。现在,如果从和中减去一个数字,那么另一个数字就正确了。这就是第 5 行所做的工作。从存储在 num1 变量中的总和中减去 num2 会得到存储在 num2 中的原始 num1 值。同样,在第 6 行的 num1 中得到 num2 的值。

小心:还有一个与 + 和 - 互换的单行代码方案,不过。。。

它是这样的:

function swapWithPlusMinusShort(num1,num2){
 console.log(num1,num2)

 num2 = num1+(num1=num2)-num2;

 console.log(num1,num2)
}

swapWithPlusMinusShort(2,3)


上面的代码给出了预期的结果。 () 中的表达式将 num2 存储在 num1 中,然后减去 num1 - num2,除了减去 num2 - num2 = 0 之外什么也没有做,因此得到了结果。但是当使用浮点数 时,会看到一些*意外的结果。 *

试着执行下面的代码并查看结果:

可以试一试下面的代码:

function swapWithPlusMinusShort(num1,num2){
 console.log(num1,num2)

 num2 = num1+(num1=num2)-num2;

 console.log(num1,num2)
}

swapWithPlusMinusShort(2,3.1)


3仅使用 + 或 - 运算符

仅通过使用 + 运算符就可以达到同时使用 + 和 - 相同的结果。

扫描二维码关注公众号,回复: 11638429 查看本文章

看下面的代码:

function swapWithPlus(num1,num2){
 console.log(num1,num2)
 
 num2 = num1 + (num1=num2, 0)
 
 console.log(num1,num2)
}
 
//Try with - operator
swapWithPlus(2.3,3.4)

上面的代码是有效的,但牺牲了可读性。在第 4 行的 () 中,我们将 num1 赋值给 num2,而旁边的 0 是返回值。简而言之,第 4 行的运算逻辑如下所示:

num2 = num1 + 0 
=> num2 = num1.

好了,今天的博客的写到这啦!

猜你喜欢

转载自blog.csdn.net/Feng_wwf/article/details/108086258