Voltar à página principal
sábado 5 outubro 2024
28

5 Formas de Trocar Duas Variáveis Sem Usar uma Terceira Variável em JavaScript

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.

1. Adição e Subtração

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.

2. Multiplicação e Divisão

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.

3. Usando XOR Bit a Bit

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.

4. Usando Desestruturação de Array

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.

5. Troca com Atribuição Composta (Troca em uma Linha)

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.
  • Em seguida, 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.

Compartilhar:
Criado por:
Author photo

Jorge García

Fullstack developer