我有两个变量:
var a = 1,
b = 2;
我的问题是如何交换它们?只有这个变量,没有任何对象。
我有两个变量:
var a = 1,
b = 2;
我的问题是如何交换它们?只有这个变量,没有任何对象。
当前回答
下面是交换两个变量值的一行代码。 给定变量a和b:
b = [a, a = b][0];
演示如下:
var = 1, b = 2, 输出= . getelementbyid(“输出”); 输出。innerHTML="<p>原来:"+a+", "+b+"</p>"; //交换变量a和b的值 B = [a, a = B][0]; 输出。innerHTML+="<p>交换:"+a+", "+b+"</p>"; < div id = "输出" > < / div >
其他回答
单行交换
a = a^b^(b^=(a^b));
ES6 (Firefox和Chrome已经支持它 数组匹配)):
设a = 5, b = 6; [a, b] = [b, a]; console.log(“${一}$ {b}”);
现在你终于可以做到:
设a = 5; 令b = 10; [a, b] = [b, a];/ / ES6 console.log (a, b);
您可以使用临时交换变量或XOR。
a = a ^ b
b = a ^ b
a = a ^ b
这只是一个基本的逻辑概念,适用于支持异或操作的每种语言。
编辑:见注释。忘了说,这只适用于整数。假设问题线程中的整数变量
正如你的问题是宝贵的“只有这个变量,没有任何对象。,答案也会弥足珍贵:
Var a = 1, B = 2
a=a+b;
b=a-b;
a=a-b;
这是个诡计 正如罗德里戈·阿西斯所说,它“可以更短”
b=a+(a=b)-b;
演示: http://jsfiddle.net/abdennour/2jJQ2/