はじめに
この記事では、a と b の変数値を交換する 7 つの方法をまとめます
var a = 123; var b = 456;
変数値を交換するプラン 1
最も簡単で簡単な方法は、一時変数を使用することですが、一時変数メソッドは本当に低すぎます
var t; t = a; a = b; b = t;
まずaの値を一時変数に格納し、次にbをaに代入し、最後に一時変数のaの値を取り出してbに代入します。この方法は最も基本的なものです
変数値を交換するプランその2
実際には、一時変数を使用しないというアイデアは、変数の1つを作成することです。 a と b の両方に関連する値。このようにして、最初に別の変数値を変更し、最後に元の変更された変数値を変更することができます
たとえば、これを
a += b; b = a - b; a -= b;
最初に a を次のようにします。 a と b の「合計」(a と b の差の「合計」に変更することもできます、同じです)、「and」から b を引いたもの 巧妙に a の変数値を取得して b に代入し、減算しますa の値を 'and' で取得して b の値を取得し、それを a に代入するか、次のバリエーション (差分形式)
a -= b; b = a + b; a = b - a;
ただし、合計の形式の方が理解しやすいです
交換変数値スキームthree
このメソッドは、JavaScript を実際に使用することがほとんどないため、初めて JavaScript を学習する学生には理解できないかもしれません。操作は、以前アルゴリズム コンペティションの本を読んだときに学んだものです。低レベルを使用します。 =b^=a^=b で変数値を交換するためのビット操作もタスクを完了しますが、JavaScript ではできないことがわかりました
でも、これはできるa ^= b; b ^= a; a ^= b;
変数値の交換スキーム 4
まず a をオブジェクトに変換し、このオブジェクト 交換する必要があるキーと値のペアを保存し、最後に値を割り当てます
a = (b^=a^=b)^a;
変数値の交換スキーム 5
はオブジェクトが配列に置き換えられることを除いて、上記のメソッドと非常に似ています
変数を交換するバリュープラン 6
このメソッドは、私が思いついたわけではありません。彼が夢想したのでなければ、それは偉大な神に違いありません。単純で粗雑なコード行で、a と b の変数値が交換されました。
演算子の優先順位に従って、b=a。このとき、 b は a の変数値を直接取得し、その後、配列のインデックス付けの 1 ステップで a が b の値を取得できるようになります (これ以上強力なものはありません)
変数値の交換プラン 7
私の最終的な解決策は、ES6 の分割代入構文を使用することです。これにより、配列とオブジェクトの値を抽出し、変数に値を割り当てることができます。ただし、現在テストしている Chrome ブラウザーはすでに実装されています。
a = {a:b,b:a}; b = a.b; a = a.a;
構造化代入構文によって変数値の交換が非常に簡単になることがわかりましたが、この構造化代入構文については多くのことを話す必要がありますが、それについては今日の焦点ではありません。将来のことなので今は話しません
概要
この記事では、変数値を交換する他の方法があるかどうかはわかりませんが、これは重要ではない問題ですが、想像力を働かせるために使用できます。