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= ...
最新文章
- 关于计算机中二进制原码,反码,补码的简要解释
- iOS证书及ipa包重签名探究
- C++11新特性之十:enable_shared_from_this
- 国产plc做modbus从站_Modbus-RTU通信
- java公司自己封装的框架_SpringBoot封装自己的Starter的实现方法
- AcWing基础算法课Level-2 第六讲 贪心
- java 字符串 移位_算法学习之字符串左移和右移
- CVE-2010-2883Adobe Reader和Acrobat CoolType.dll栈缓冲区溢出漏洞分析
- 51CTO的企业文化——水文化
- SimpleDateFormat-多线程问题
- FreeSWITCH在会议室中持续播放音频文件
- 电脑重启只剩下c盘怎么办_我的电脑正在正常运行突然自动重启了,重启后发现系统只剩下C盘了,请教怎么恢复?...
- 文言文的理解 —— 字词篇
- 西点教育计算机二级证,拍了拍你:西式面点师证报名报考政策须知
- zoj 1104 Leaps Tall Buildings(超人不会飞- -。。)
- Centos 7 freeradius 搭建企业wifi认证服务
- IDEA中使用properties连接mysql8.0.13
- Android 系统时间自动更新机制
- 那些被踢“出局”的创始人,现在还好吗?
- 一个好的PS笔刷(笔触)下载论坛