汇盛国际娱乐:JavaScript交换两个变量值的七种解决

时间: 作者:体反

  

[js,交换变量,js交换两个变量的值,两个变量交换值]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];
  
  

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

  

总结  

  

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

  
  

(责任编辑:admin)

推荐图片Related

相关文章Related

查看更多热门新闻


首页 | 特效插件 | 常用代码 | 样式素材 | 脚本代码 | css特效

Copyright © 2017-2018 汇盛国际 版权所有

系统要求:本站自适应各终端浏览器分辨率

请使用Google、Firefox、IE9、百度浏览器登录网站

网站地图 | RSS订阅 | 汇盛国际平台