CodeWars Weird Case问题:如何处理空格使单词首字母大写
解决Weird Case问题的空格处理方案
你的代码目前是基于整个字符串的索引来切换大小写,所以遇到空格时,空格后的字符会延续之前的索引计数,导致无法实现空格后单词首字母大写的需求。要解决这个问题,需要按单词分别处理大小写交替逻辑:
修改后的代码
function toWeirdCase(string) { // 按空格分割成单词数组 return string.split(' ').map(word => { // 对每个单词单独处理大小写交替 return word.split('').map((char, index) => { return index % 2 === 0 ? char.toUpperCase() : char.toLowerCase(); }).join(''); }).join(' '); // 把处理后的单词重新拼接成字符串 }
代码说明
split(' '):将原字符串按空格拆分成独立单词,确保每个单词可以单独处理map(word => ...):遍历每个单词,针对单词内部的字符执行大小写转换逻辑- 单词内部的
map((char, index) => ...):以单词自身的字符索引为基准,偶数索引(0、2、4...)转大写,奇数索引转小写 - 最后用
join(' ')把处理好的单词重新组合成带空格的完整字符串
这样就能满足需求:每个单词的首字母大写,后续字母依次交替大小写,空格不会干扰每个单词的计数逻辑。
内容的提问来源于stack exchange,提问作者Kestone Dennis
相关产品推荐
相关产品推荐

