プログラムを書くとき、通常、2つの数値の値が交換される状況に遭遇します。次に、次のメソッドでそれらを解決するか、関数にカプセル化して、使用する必要があるときに直接呼び出すことができます。
方法1:3番目の変数を使用せずに
排他的論理和演算子(^)で解く
<script>
var a=1;
var b=2;
a=a^b;
b=a^b;
a=a^b;
console.log(a,b);
</script>
2つの数値を2進数に変換し、ビット単位で比較し、同じものを0、同じものを1として、3番目の値を取得します。このようにして、値を交換する効果を実現するために次の式が計算されます。
プロセスは次のとおりです。次のようになります。a
= a ^ b
a:0001
b:0010
結果:0011–> a = 3
b = a ^ b
a:0011
b:0010
結果:0001–> b = 1
a = a ^ b;
a:0011
b :0001
結果:0010-> a = 2
方法2:サードパーティの変数なし(加算と減算)。
<script>
var a=2;
var b=3;
a=a+b; //表达式1
b=a-b; //表达式2
a=a-b; //表达式3
console.log(a,b);
</script>
上記の式は次のように変換できます
。b= expression1-b =(a + b)-b = a; //結果1a =(a + b)-結果
1 =(a + b)-a = b;
交換上記の計算方法による値
方法3:サードパーティの変数(乗算と除算)の助けを借りずに
<script>
var a=2;
var b=3;
a=a*b;
b=a/b;
a=a/b;
console.log(a,b);
</script>
計算プロセスは方法2と同様です。
方法4:3番目の変数を使用します。
<script>
var a = 4;
var b = 5;
var temp;
temp = a;
a = b;
b = temp;
console.log(a,b);
</script>
方法5:ES6を使用して、3番目の変数を使用せずに分解します
<script>
var a=5;
var b=6;
[a,b]=[b,a];
console.log(a,b);
</script>
方法6:3番目の変数
を使用し、配列を使用して、2つの変数を格納し、配列の特性を使用してそれらの値を交換します。
<script>
var a=6;
var b=7;
var res=[a,b];
a=res[1];
b=res[0];
console.log(a,b);
</script>