Computer >> Máy Tính >  >> Lập trình >> Javascript

Hoán đổi cách viết hoa chuỗi bằng số nhị phân trong JavaScript

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript nhận một chuỗi str và một số n. Hàm của chúng ta nên thay đổi chuỗi str đã cho bằng cách sử dụng n.

Mỗi bit trong n sẽ chỉ định có hay không hoán đổi trường hợp cho mỗi ký tự chữ cái trong s -

Nếu bit là 1, hãy hoán đổi trường hợp; nếu nó là 0, hãy để nguyên. Khi chúng ta kết thúc với bit cuối cùng của n, hãy bắt đầu lại với bit đầu tiên.

Và cuối cùng, chúng ta nên trả về chuỗi mới do đó tạo thành.

Ví dụ

Sau đây là mã -

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));

Đầu ra

Sau đây là đầu ra của bảng điều khiển -

HeY TheRe