Intercambiar variables es una tarea común en la programación, y hay varias formas de hacerlo sin utilizar una tercera variable. En este artículo, exploraremos cinco métodos diferentes en JavaScript, cada uno con una explicación detallada.
Este método implica operaciones aritméticas simples:
a = 20;
b = 40;
a = a + b;
b = a - b;
a = a - b;
console.log('Después de Suma y Resta:');
console.log('a:', a); // 40
console.log('b:', b); // 20
Explicación:
a = a + b;
combina los valores de a
y b
y almacena el resultado en a
.
b = a - b;
resta el nuevo valor de b
(que es a
) de a
para obtener el valor original de a
.
a = a - b;
resta el nuevo valor de b
(el valor original de a
) de a
para obtener el valor original de b
.
Otro método aritmético, pero utilizando multiplicación y división. Ten en cuenta que este método asume que a
y b
no son cero para evitar la división por cero:
a = 20;
b = 40;
a = a * b;
b = a / b;
a = a / b;
console.log('Después de Multiplicación y División:');
console.log('a:', a); // 40
console.log('b:', b); // 20
Explicación:
a = a * b;
multiplica los valores de a
y b
y almacena el resultado en a
.
b = a / b;
divide el nuevo valor de a
por b
para obtener el valor original de a
.
a = a / b;
divide el nuevo valor de a
por el nuevo valor de b
para obtener el valor original de b
.
Las operaciones a nivel de bits también se pueden usar para intercambiar variables:
a = 20;
b = 40;
a = a ^ b;
b = a ^ b;
a = a ^ b;
console.log('Después de XOR a Nivel de Bits:');
console.log('a:', a); // 40
console.log('b:', b); // 20
Explicación:
a = a ^ b;
almacena el resultado del XOR a nivel de bits entre a
y b
en a
.
b = a ^ b;
almacena el resultado del XOR a nivel de bits entre el nuevo a
y b
(que es el valor original de a
) en b
.
a = a ^ b;
almacena el resultado del XOR a nivel de bits entre el nuevo a
y b
(que es el valor original de b
) en a
.
Un enfoque más moderno y elegante en JavaScript utiliza la desestructuración de arreglos:
a = 20;
b = 40;
[a, b] = [b, a];
console.log('Después de Desestructuración de Arreglos:');
console.log('a:', a); // 40
console.log('b:', b); // 20
Explicación:
[a, b] = [b, a];
intercambia los valores de a
y b
utilizando la asignación por desestructuración de arreglos. Este es un método conciso y legible para intercambiar variables en JavaScript moderno.
Este ingenioso método utiliza una combinación de aritmética y asignación en una sola línea:
a = 20;
b = 40;
a = a + b - (b = a);
console.log('Después de Intercambio con Asignación Compuesta:');
console.log('a:', a); // 40
console.log('b:', b); // 20
Explicación:
a = a + b - (b = a);
puede parecer complejo, pero sigue una secuencia específica de operaciones debido a cómo JavaScript evalúa las expresiones. Así es como funciona:
(b = a)
asigna el valor de a
a b
.
a + b - (b = a)
se convierte en a + a - a
, lo que efectivamente intercambia los valores de a
y b
.
En resumen, cada uno de estos métodos logra el mismo resultado de intercambiar las variables a
y b
sin utilizar una tercera variable, demostrando diferentes técnicas en JavaScript.
Jorge García
Fullstack developer