使用 JavaScript 中的二進位制數字交換字串大小寫


問題

我們需要編寫一個 JavaScript 函式,該函式接收一個字串 str 和一個數字 n。我們的函式應使用 n 來修改給定的字串 str。

n 中的每一位都將指定是否交換 s 中的每個字母字元的大小寫 −

如果該位為 1,則交換大小寫;如果為 0,則保持原樣。當我們完成 n 的最後一位時,從第一位重新開始。

最後,我們應返回由此形成的新字串。

示例

以下是程式碼 −

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

輸出

以下是有控制檯輸出

HeY TheRe

更新於: 17-Apr-2021

瀏覽 149 次

開啟 職業生涯

完成課程,獲取認證

開始學習
廣告
© . All rights reserved.