【发布时间】:2019-03-04 17:16:41
【问题描述】:
我想创建一个交替字母大写的函数。例如,Hello World 将变为 HeLlO wOrLd。字符串的第一个字母必须始终大写。
这是我写的代码:
function alternatingCaps(str) {
let alternate = str.charAt(0).toUpperCase();
for(let i = 1; i < str.length; i++) {
let previousChar = str.charAt(i - 1);
if(previousChar === previousChar.toUpperCase())
alternate += str.charAt(i).toLowerCase();
else if(previousChar === previousChar.toLowerCase())
alternate += str.charAt(i).toUpperCase();
}
return alternate;
}
我用提供的字符串的大写第一个字符声明了alternate 变量。然后我循环遍历字符串的其余部分并检查当前迭代之前的字符是大写还是小写;无论是哪个,当前的字母都会变成相反的。
但是,这并没有达到预期的结果。以下是一些测试及其相应的结果:
console.log(alternatingCaps('hello world'));
// Output: "HELLO wORLD"
console.log(alternatingCaps('jAvaScrIPT ruLEZ'));
// Output: "JAvAScRIpt rULez"
如何修复我的功能?
【问题讨论】:
-
alternatingCaps('jAvaScrIPT ruLEZ')的期望输出是什么? -
为什么不直接遍历字符串,为每个非空格字符交替大写和小写?
-
"@AnuragSrivastava JaVaScRiPt RuLeZ
-
@HereticMonkey 这就是我想要做的
标签: javascript string function for-loop