在JavaScript中使用二进制数交换字符串大小写

问题

我们需要编写一个包含字符串str和数字n的JavaScript函数。我们的函数应使用n更改给定的字符串str。

n中的每一位将指定是否为s中的每个字母字符交换大小写-

如果该位为1,则交换大小写;否则为0。如果其为0,则保持原样。当我们完成n的最后一位时,请从第一位开始。

最后,我们应该返回由此形成的新字符串。

示例

以下是代码-

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

输出结果

以下是控制台输出-

HeY TheRe

以上是 在JavaScript中使用二进制数交换字符串大小写 的全部内容, 来源链接: utcz.com/z/331862.html

回到顶部