Vorwort
Dieser Artikel fasst sieben Möglichkeiten zum Austausch der Variablenwerte von a und b zusammen
var a = 123; var b = 456;
Variablenwerte austauschen Lösung 1
Der einfachste und einfachste Weg ist die Verwendung einer temporären Variablen, aber die Methode zur Verwendung temporärer Variablen ist zu niedrig
var t; t = a; a = b; b = t;
Speichern Sie zuerst den Wert von a in einer temporären Variablen, weisen Sie dann b zu und nehmen Sie schließlich den Wert von a aus der temporären Variablen heraus und weisen Sie ihn b zu. Diese Methode ist das grundlegendste
Schema Variablenwerte austauschen 2.
Keine der folgenden Lösungen verfügt über temporäre Variablen. Tatsächlich besteht die Idee, keine temporären Variablen zu verwenden, darin, eine der Variablen in einen verwandten Wert umzuwandeln Auf diese Weise können Sie zunächst den Wert einer anderen Variablen ändern und schließlich den ursprünglichen geänderten Variablenwert
ändern. Dies ist beispielsweise
a += b; b = a - b; a -= b;
Lassen Sie a zuerst werden Die „Summe“ von a und b (kann auch durch die Differenz zwischen a und b ersetzt werden, dasselbe), „Summe“ minus b erhält geschickt die Variable Wert von a und weist ihn b zu und subtrahiert dann den Wert von a durch „Summe“, um den Wert von b zu erhalten, oder die folgende Variante (Differenzform)
a -= b; b = a + b; a = b - a;
Aber die Form der Summe ist leichter zu verstehen
Variablenwertschema drei austauschen
Diese Methode wird von Schülern, die JavaScript lernen, möglicherweise nicht verstanden Das erste Mal, weil wir in JavaScript selten In-Place-Operationen verwenden. Dies habe ich im Algorithmus-Wettbewerbsbuch gelesen, bevor ich es gelernt habe, als ich Low-Level-Bitoperationen zum Austausch von Variablenwerten verwendet habe, was auch die Entwicklung von ist obige Lösung.
a ^= b; b ^= a; a ^= b;
a^=b^=a^=b, um die Aufgabe abzuschließen, aber ich habe festgestellt, dass JavaScript nicht
Aber wir können dies tun
a = (b^=a^=b)^a;
Variablenwertschema 4 austauschen
Verwandeln Sie a zunächst in ein Objekt. Dieses Objekt enthält das Schlüssel-Wert-Paar, das ausgetauscht werden soll, und Endlich ist die Zuweisung erledigt
a = {a:b,b:a}; b = a.b; a = a.a;
Variablenwertschema fünf austauschen
ist der obigen Methode sehr ähnlich, außer dass das Objekt vorhanden ist durch ein Array ersetzt
a = [a,b]; b = a[0]; a = a[1];
Variablenwertschema 6 austauschen
Diese Methode ist sehr clever. Ich habe sie mir nicht ausgedacht. Die Person, die es erfunden hat, muss ein Meister sein, es sei denn, sie hat es sich ausgedacht. Es handelt sich um einen einfachen und groben einzeiligen Codeaustausch. Die Variablenwerte von a und b
a = [b,b=a][0];
Entsprechend der Operatorpriorität wird b=a zuerst ausgeführt. Zu diesem Zeitpunkt erhält b direkt den Variablenwert von a, und dann ermöglicht die einstufige Array-Indizierung, dass a den Wert von erhält b (es könnte nicht fantastischer sein)
Variablenwertplan sieben austauschen
Der letzte Plan, den ich habe, besteht darin, die destrukturierende Zuweisungssyntax von ES6 zu verwenden, die es uns ermöglicht, die Werte zu extrahieren von Arrays und Objekten und weisen Variablen Werte zu, aber der Chrome-Browser, den ich gerade teste, hat
[a,b] = [b,a];
implementiert, wie Sie sehen können. Die Destrukturierung Die Zuweisungssyntax macht es sehr einfach, Variablenwerte auszutauschen. Über diese destrukturierende Zuweisungssyntax muss ich heute nicht mehr sprechen >Zusammenfassung
In diesem Artikel wurden so viele Möglichkeiten erwähnt, variable Werte auszutauschen. Ich weiß nicht, ob es andere Möglichkeiten gibt, aber es kann verwendet werden, um unsere Vorstellungskraft zu trainieren.