Quando escrevemos programas, geralmente encontramos situações em que os valores de dois números são trocados. Então, podemos resolvê-los pelos seguintes métodos ou podemos encapsulá-los em funções e chamá-los diretamente quando precisarmos usá-los.
Método 1:
Resolva com o operador OU exclusivo (^) sem usar a terceira variável
<script>
var a=1;
var b=2;
a=a^b;
b=a^b;
a=a^b;
console.log(a,b);
</script>
Converta dois números em binário, compare-os bit a bit, tome 0 para o mesmo e tome 1 para o mesmo e obtenha o terceiro valor; desta forma, as seguintes expressões são calculadas para alcançar o efeito de troca de valores;
o processo é tão segue:
a = a ^ b
a: 0001
b: 0010
resultado: 0011–> a = 3
b = a ^ b
a: 0011
b: 0010
resultado: 0001–> b = 1
a = a ^ b;
a: 0011
b : 0001
resultado: 0010 -> a = 2
Método 2: Sem variáveis de terceiros (adição e subtração);
<script>
var a=2;
var b=3;
a=a+b; //表达式1
b=a-b; //表达式2
a=a-b; //表达式3
console.log(a,b);
</script>
A expressão acima pode ser convertida em:
b = expressão1-b = (a + b) -b = a; // resultado 1
a = (a + b) -resultado 1 = (a + b) -a = b;
troca valores através dos métodos de cálculo acima
Método 3: sem a ajuda de variáveis de terceiros (multiplicação e divisão)
<script>
var a=2;
var b=3;
a=a*b;
b=a/b;
a=a/b;
console.log(a,b);
</script>
O processo de cálculo é semelhante ao método dois;
método quatro: use a terceira variável
<script>
var a = 4;
var b = 5;
var temp;
temp = a;
a = b;
b = temp;
console.log(a,b);
</script>
Método 5: Use ES6 para desconstruir sem usar a terceira variável
<script>
var a=5;
var b=6;
[a,b]=[b,a];
console.log(a,b);
</script>
Método 6: Com o auxílio da terceira variável,
com o auxílio de um array, armazene duas variáveis e use as características do array para trocar seus valores
<script>
var a=6;
var b=7;
var res=[a,b];
a=res[1];
b=res[0];
console.log(a,b);
</script>