値を交換するいくつかの方法

プログラムを書くとき、通常、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>

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_44902858/article/details/110677732