使用 JavaScript 中的二进制数字交换字符串大小写
问题
我们需要编写一个 JavaScript 函数,该函数接收一个字符串 str 和一个数字 n。我们的函数应使用 n 来修改给定的字符串 str。
n 中的每一位都将指定是否交换 s 中的每个字母字符的大小写 −
如果该位为 1,则交换大小写;如果为 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
广告