Trocar variáveis é uma tarefa comum na programação, e existem várias maneiras de fazê-lo sem utilizar uma terceira variável. Neste artigo, exploraremos cinco métodos diferentes em JavaScript, cada um com uma explicação detalhada.
Este método envolve operações aritméticas simples:
a = 20;
b = 40;
a = a + b;
b = a - b;
a = a - b;
console.log('Depois de Adição e Subtração:');
console.log('a:', a); // 40
console.log('b:', b); // 20
Explicação:
a = a + b; combina os valores de a e b e armazena o resultado em a.
b = a - b; subtrai o novo valor de b (que é a) de a para obter o valor original de a.
a = a - b; subtrai o novo valor de b (o valor original de a) de a para obter o valor original de b.
Outro método aritmético, mas utilizando multiplicação e divisão. Observe que este método assume que a e b são diferentes de zero para evitar divisão por zero:
a = 20;
b = 40;
a = a * b;
b = a / b;
a = a / b;
console.log('Depois de Multiplicação e Divisão:');
console.log('a:', a); // 40
console.log('b:', b); // 20
Explicação:
a = a * b; multiplica os valores de a e b e armazena o resultado em a.
b = a / b; divide o novo valor de a por b para obter o valor original de a.
a = a / b; divide o novo valor de a pelo novo valor de b para obter o valor original de b.
As operações de bit a bit também podem ser usadas para trocar variáveis:
a = 20;
b = 40;
a = a ^ b;
b = a ^ b;
a = a ^ b;
console.log('Depois de XOR Bit a Bit:');
console.log('a:', a); // 40
console.log('b:', b); // 20
Explicação:
a = a ^ b; armazena o resultado do XOR bit a bit entre a e b em a.
b = a ^ b; armazena o resultado do XOR bit a bit entre o novo a e b (que é o valor original de a) em b.
a = a ^ b; armazena o resultado do XOR bit a bit entre o novo a e b (que é o valor original de b) em a.
Uma abordagem mais moderna e elegante em JavaScript utiliza a desestruturação de array:
a = 20;
b = 40;
[a, b] = [b, a];
console.log('Depois de Desestruturação de Array:');
console.log('a:', a); // 40
console.log('b:', b); // 20
Explicação:
[a, b] = [b, a]; troca os valores de a e b usando a atribuição de desestruturação de array. Este é um método conciso e legível para trocar variáveis no JavaScript moderno.
Este método inteligente usa uma combinação de aritmética e atribuição em uma única linha:
a = 20;
b = 40;
a = a + b - (b = a);
console.log('Depois de Troca com Atribuição Composta:');
console.log('a:', a); // 40
console.log('b:', b); // 20
Explicação:
a = a + b - (b = a); pode parecer complexo, mas segue uma sequência específica de operações devido a como o JavaScript avalia as expressões. Veja o que acontece:
(b = a) atribui o valor de a a b.
a + b - (b = a) torna-se a + a - a, o que efetivamente troca os valores de a e b.
Em resumo, cada um desses métodos atinge o mesmo resultado de trocar as variáveis a e b sem usar uma terceira variável, demonstrando diferentes técnicas em JavaScript.
Jorge García
Fullstack developer