# Swapping string case using a binary number in JavaScript

JavascriptWeb DevelopmentFront End Technology

#### JavaScript for beginners

Best Seller

74 Lectures 10 hours

#### Modern Javascript for Beginners + Javascript Projects

Most Popular

112 Lectures 15 hours

#### The Complete Full-Stack JavaScript Course!

Best Seller

96 Lectures 24 hours

## Problem

We are required to write a JavaScript function that takes in a string str and a number n. Our function should change the given string str using n.

Each bit in n will specify whether or not to swap the case for each alphabetic character in s −

If the bit is 1, swap the case; if its 0, leave it as is. When we are finished with the last bit of n, start again with the first bit.

And finally, we should return the new string thus formed.

## Example

Following is the code −

Live Demo

const str = 'hey there';
const num = 21;
const swapCase = (str = '', num = 1) => {
const alphaLength = str
.split('')
.reduce((acc, val) => val.toLowerCase() !== val.toUpperCase() ? ++acc : acc, 0);
let binary = num.toString(2);
while(binary.length < alphaLength){
binary += binary;
};
let res = '';
for(let i = 0; i < str.length; i++){
const el = str[i];
if(el.toUpperCase() !== el.toLowerCase() && +binary[i] === 1){
if(el.toLowerCase() === el){
res += el.toUpperCase();
}else{
res += el.toLowerCase();
}
}else{
res += el;
};
};
return res;
};
console.log(swapCase(str, num));

## Output

Following is the console output −

HeY TheRe