当前位置: 首页 > 编程笔记 >

JavaScript交换两个变量值的七种解决方案

凤伟泽
2023-03-14
本文向大家介绍JavaScript交换两个变量值的七种解决方案,包括了JavaScript交换两个变量值的七种解决方案的使用技巧和注意事项,需要的朋友参考一下

前言

这篇文章总结了七种办法来交换a和b的变量值

var a = 123;
var b = 456;

交换变量值方案一

最最最简单的办法就是使用一个临时变量了,不过使用临时变量的方法实在是太low了

var t;
t = a;
a = b;
b = t;

首先把a的值存储到临时变量中,然后b赋值给a,最后拿出临时变量中的a值赋给b,这个办法是最基本的了

交换变量值方案二

下面的方案都不会有临时变量,我总结了一下,其实不使用临时变量的思路都是让其中一个变量变成一个a和b都有关系的值,这样可以先改变另一个变量值, 最后改变原修改的变量值

比如这个

a += b;
b = a - b;
a -= b;

让a先变成a与b的‘和'(也可以换成a和b的差,一样的) ,‘和'减去b巧妙的得到了a的变量值赋予b ,再通过‘和'减去a的值得到了b的值赋予a,或者是下面的变式(差的形式)

a -= b;
b = a + b;
a = b - a;

但是感觉和的形式更容易理解

交换变量值方案三

这种方法对于第一次学习JavaScript的同学来说可能不了解,因为我们JavaScript很少会用到位操作,这是我在以前看算法竞赛书的时候学来的,通过底层位运算来进行交换变量值,也是上面的方案演化来的

a ^= b;
b ^= a;
a ^= b;

了解一下吧,C++甚至可以a^=b^=a^=b来完成任务,但我发现JavaScript不可以

不过我们可以这样

a = (b^=a^=b)^a;

交换变量值方案四

把a先变成了一个对象,这个对象保存着应该交换后的键值对,最后赋值搞定

a = {a:b,b:a};
b = a.b;
a = a.a;

交换变量值方案五

和上面的方法很像,只不过对象换成了数组

a = [a,b];
b = a[0];
a = a[1];

交换变量值方案六

这个办法十分的巧妙,不是我想出来的,想出来的人一定是大神,除非他是托梦想出来的,简单粗暴一行代码交换了a和b的变量值

a = [b,b=a][0];

根据运算符优先级,首先执行b=a,此时的b直接得到了a的变量值,然后一步数组索引让a得到了b的值(简直不能再厉害)

交换变量值方案七

最后我的方案是利用了ES6的解构赋值语法,它允许我们提取数组和对象的值,对变量进行赋值,不过我现在测试用的chrome浏览器已经实现了

[a,b] = [b,a];

可以看到解构赋值语法让我们的交换变量值变得超级简单,这个解构赋值语法要是讲的话要讲很多不是今天的重点,以后会在再总结现在就不讲了

总结

本文提到了这么多交换变量值的方法,不知道还有没有其他办法,虽然它是一个无关紧要的问题,不过可以练一练我们的脑洞。希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

 类似资料:
  • 本文向大家介绍Java 交换两个变量的数值实现方法,包括了Java 交换两个变量的数值实现方法的使用技巧和注意事项,需要的朋友参考一下 一、参数传递方法 为解决标题问题,首先介绍参数传递方法。目前各类程序设计语言的参数传递方法主要有三种: 1.按值传递 2.按引用传递 3.按指针传递 其中按值传递表示方法(函数)接收的是调用者提供的变量的拷贝,不改变参数的值;按引用传递表示方法(函数)接收的调用者

  • 问题内容: 我有两个变量: 我的问题是如何交换它们?仅此变量,没有任何对象。 问题答案: 这是交换两个变量的值的单行代码。 给定变量和: 示范如下:

  • 本文向大家介绍Python3之不使用第三方变量,实现交换两个变量的值,包括了Python3之不使用第三方变量,实现交换两个变量的值的使用技巧和注意事项,需要的朋友参考一下 method 1: method 2: 以上这篇Python3之不使用第三方变量,实现交换两个变量的值就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 本文向大家介绍JS实现不用中间变量temp 实现两个变量值得交换方法,包括了JS实现不用中间变量temp 实现两个变量值得交换方法的使用技巧和注意事项,需要的朋友参考一下 1.使用加减法; 2.使用乘除法(乘除法更像是加减法向乘除运算的映射) 注意:该方法可以交换整型和浮点型数值的变量,但在处理浮点型的时候有可能出现精度的损失  而且乘除时b不能为0; 3.使用数组的灵活性 总结 以上所述是小编给

  • 本文向大家介绍Python实现全局变量的两个解决方法,包括了Python实现全局变量的两个解决方法的使用技巧和注意事项,需要的朋友参考一下 本文针对Python的全局变量实现方法简述如下: 先来看下面一段测试程序: 运行结果是: 很显然,这并不是我们想要的结果。 针对这一问题的解决方法就是采用全局变量: 运行结果为: 需要注意:哪里需要全局变量,哪里声明一下;但是函数千万不要传参数,比如用Fuc(

  • 本文向大家介绍JavaScript中交换值的10种方法总结,包括了JavaScript中交换值的10种方法总结的使用技巧和注意事项,需要的朋友参考一下 前言 在开发过程中又是我们需要对值进行交换。一般我们都在用一种简单的解决方案:“临时变量”。不过还有更好的办法,而且不只有一个,有很多。有时我们在网上搜寻解决方案,找到后复制粘贴,但是从没想过这小段代码是怎样工作的。现在我们该学习一下应该怎样轻松高