Heim  >  Artikel  >  Web-Frontend  >  Sieben Lösungen zum Austausch der Werte zweier Variablen in JavaScript

Sieben Lösungen zum Austausch der Werte zweier Variablen in JavaScript

高洛峰
高洛峰Original
2016-12-03 10:46:391764Durchsuche

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.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn