DEV Community

Cover image for 5 Ways to Swap Two Variables Without Using a Third Variable in Javascript
Amit Kumar
Amit Kumar

Posted on

3 1 1 1 1

5 Ways to Swap Two Variables Without Using a Third Variable in Javascript

Swapping variables is a common task in programming, and there are several ways to do it without using a third variable. In this post, we'll explore five different methods in JavaScript, each with a detailed explanation.

1. Addition and Subtraction

This method involves simple arithmetic operations:

a = a + b;
b = a - b;
a = a - b;

console.log('After Addition and Subtraction:');
console.log('a:', a); // 40
console.log('b:', b); // 20

Enter fullscreen mode Exit fullscreen mode

Explanation:

a = a + b; combines the values of a and b and stores the result in a.
b = a - b; subtracts the new value of b (which is a) from a to get the original value of a.
a = a - b; subtracts the new value of b (original a) from a to get the original value of b.

2. Multiplication and Division

Another arithmetic method, but using multiplication and division. Note that this method assumes a and b are non-zero to avoid division by zero:

a = 20;
b = 40;

a = a * b;
b = a / b;
a = a / b;

console.log('After Multiplication and Division:');
console.log('a:', a); // 40
console.log('b:', b); // 20

Enter fullscreen mode Exit fullscreen mode

Explanation:

a = a * b; multiplies the values of a and b and stores the result in a.
b = a / b; divides the new value of a by b to get the original value of a.
a = a / b; divides the new value of a by the new value of b to get the original value of b.

3. Using Bitwise XOR

Bitwise operations can also be used to swap variables:

a = 20; 
b = 40;

a = a ^ b;
b = a ^ b;
a = a ^ b;

console.log('After Bitwise XOR:');
console.log('a:', a); // 40
console.log('b:', b); // 20

Enter fullscreen mode Exit fullscreen mode

Explanation:

a = a ^ b; stores the result of the bitwise XOR of a and b in a.
b = a ^ b; stores the result of the bitwise XOR of the new a and b (which is the original a) in b.
a = a ^ b; stores the result of the bitwise XOR of the new a and b (which is the original b) in a.

4. Using Array Destructuring

A more modern and elegant approach in JavaScript uses array destructuring:

a = 20;
b = 40;

[a, b] = [b, a];

console.log('After Array Destructuring:');
console.log('a:', a); // 40
console.log('b:', b); // 20

Enter fullscreen mode Exit fullscreen mode

Explanation:

[a, b] = [b, a]; swaps the values of a and b using array destructuring assignment. This is a concise and readable way to swap variables in modern JavaScript.

5. Compound Assignment Swap (Single Line Swap)

This clever method uses a combination of arithmetic and assignment in a single line:

a = 20;
b = 40;

a = a + b - (b = a);

console.log('After Compound Assignment Swap:');
console.log('a:', a); // 40
console.log('b:', b); // 20
Enter fullscreen mode Exit fullscreen mode

Explanation:

a = a + b - (b = a); may look complex but it follows a specific sequence of operations due to how JavaScript evaluates expressions. Here's what happens:

  1. (b = a) assigns the value of a to b.
  2. Then, a + b - (b = a) becomes a + a - a, which effectively swaps the values of a and b.

In summary, each of these methods achieves the same result of swapping variables a and b without using a third variable, showcasing different techniques in JavaScript.

Sentry blog image

How to reduce TTFB

In the past few years in the web dev world, we’ve seen a significant push towards rendering our websites on the server. Doing so is better for SEO and performs better on low-powered devices, but one thing we had to sacrifice is TTFB.

In this article, we’ll see how we can identify what makes our TTFB high so we can fix it.

Read more

Top comments (0)

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay