JavaScript交换两个变量值的七种解决方案
这篇文章总结了七种办法来交换a和b的变量值
1 2 |
|
交换变量值方案一
最最最简单的办法就是使用一个临时变量了,不过使用临时变量的方法实在是太low了
1 2 3 4 |
|
首先把a的值存储到临时变量中,然后b赋值给a,最后拿出临时变量中的a值赋给b,这个办法是最基本的了
交换变量值方案二
下面的方案都不会有临时变量,我总结了一下,其实不使用临时变量的思路都是让其中一个变量变成一个a和b都有关系的值,这样可以先改变另一个变量值, 最后改变原修改的变量值
比如这个
1 2 3 |
|
让a先变成a与b的‘和'(也可以换成a和b的差,一样的) ,‘和'减去b巧妙的得到了a的变量值赋予b ,再通过‘和'减去a的值得到了b的值赋予a,或者是下面的变式(差的形式)
1 2 3 |
|
但是感觉和的形式更容易理解
交换变量值方案三
这种方法对于第一次学习JavaScript的同学来说可能不了解,因为我们JavaScript很少会用到位操作,这是我在以前看算法竞赛书的时候学来的,通过底层位运算来进行交换变量值,也是上面的方案演化来的
1 2 3 |
|
了解一下吧,C++甚至可以a^=b^=a^=b
来完成任务,但我发现JavaScript不可以
不过我们可以这样
1 |
|
交换变量值方案四
把a先变成了一个对象,这个对象保存着应该交换后的键值对,最后赋值搞定
1 2 3 |
|
交换变量值方案五
和上面的方法很像,只不过对象换成了数组
1 2 3 |
|
交换变量值方案六
这个办法十分的巧妙,不是我想出来的,想出来的人一定是大神,除非他是托梦想出来的,简单粗暴一行代码交换了a和b的变量值
1 |
|
根据运算符优先级,首先执行b=a
,此时的b直接得到了a的变量值,然后一步数组索引让a得到了b的值(简直不能再厉害)
交换变量值方案七
最后我的方案是利用了ES6的解构赋值语法,它允许我们提取数组和对象的值,对变量进行赋值,不过我现在测试用的chrome浏览器已经实现了
1 |
|
可以看到解构赋值语法让我们的交换变量值变得超级简单,这个解构赋值语法要是讲的话要讲很多不是今天的重点,以后会在再总结现在就不讲了
总结
本文提到了这么多交换变量值的方法,不知道还有没有其他办法,虽然它是一个无关紧要的问题,不过可以练一练我们的脑洞。希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
JavaScript交换两个变量值的七种解决方案相关推荐
- 用html5交换两个变量的值,JavaScript交换两个变量值的七种解决方案
前言 这篇文章总结了七种办法来交换a和b的变量值 var a = 123; var b = 456; 交换变量值方案一 最最最简单的办法就是使用一个临时变量了,不过使用临时变量的方法实在是太low了 ...
- python中交换两个变量值的几种方式?
python中交换两个变量值的几种方式 1.python中独有的,也是最简单的方式: a,b=b,a 2.引入第三个变量,可以看作两个装满牛奶的瓶子a和瓶子b,如果我想交换这两个瓶子中的牛奶,就需要一 ...
- 交换两个变量值的几种方法-C语言初学者
1.借用一个中间变量交换两个变量 #include<stdio.h> int main() {int i=0;int j =0;int n = 0;printf("请输入两个要交 ...
- 交换两个变量值的几种方法;
1.借用一个临时值交换两个变量: #include <stdio.h> int main() {int num1 = 5;int num2 = 8;int temp;//申请一个临时变量p ...
- 交换两个变量值的四种方法
面试题: 交换两个变量的值 int a = 10; int b = 20; 方案A:使用第三方变量(开发中使用) int c = a; a = b; b = c; 方案B:用异或的特点实现(面试使用) ...
- 交换两个变量值的三种方法
文章目录 交换两个变量的值的方法 方法1:定义临时变量 方法2:采用加减操作来实现交换 方法3:利用异或运算符进行操作 交换两个变量的值的方法 方法1:定义临时变量 public class Test ...
- C++交换两个变量值的方法
简单地列一下交换两个变量值地几种方法. 1.通过第三方实现,这一种也是最最最常见普通的方法: void swap(int *a, int *b) {int tmp = *a;*a = *b;*b = ...
- RUNOOB python练习题47 交换两个变量值
用来练手的python练习题,原题链接: python练习实例47 题干: 两个变量值互换 在C语言C++中我们要构造一个能交换两个变量值的函数很方便,我们可以使用指针,或者C++中的引用.那么在没有 ...
- 7-利用函数交换两个变量值的方法
利用函数交换两个变量值的方法 1.利用一个中间变量 void Swap(int *p1,int *p2) {int temp=0;//定义一个中间变量temp=*p1;//把a的值赋给中间变量*p1= ...
最新文章
- Kotlin 函数的问题
- oracle 10.2 64位,Oracle 10.2.0.5 x64升级到11.2.0.3 x64
- 最新 crtmpserver 源码的获取方法
- 雷军 1994 年写的代码,经典老古董~
- JDBC访问数据库的基本程序
- C++语言程序设计之关联容器类型
- 通过printf设置Linux终端输出的颜色和显示方式
- mybatis.net mysql_ADO.NET与ORM的比较(5):MyBatis实现CRUD
- 做完系统回来计算机连接不上网络,重装系统后电脑连不上网怎么回事
- 深入解析Python中函数的参数与作用域
- 创建和应用Java包文件的两种方式(转)
- Git常用命令——分支操作
- zookeeper3.5.x版本启动报错java.io.IOException: No snapshot found, but there are log entries.解决
- 软件开发角色知识概括
- ubuntu-20.04.3-详细安装教程(图文)附下载地址
- 计算机网络 | 应用层
- [java/初学者] 猜测随机数字的大小
- 谷歌浏览器离线安装crx插件方法
- C++学习日记——头文件的编写
- 小白学 Python 爬虫(26):为啥上海二手房你都买不起