【发布时间】:2013-11-07 23:24:58
【问题描述】:
我遇到了 Coderbyte 的挑战
使用 JavaScript 语言,让函数 LetterChanges(str) 获取传递的 str 参数,并使用以下算法对其进行修改。将字符串中的每个字母替换为字母表中紧随其后的字母(即,c 变为 d,z 变为 a)。然后将这个新字符串中的每个元音大写(a、e、i、o、u),最后返回这个修改后的字符串。
这是我的代码:
function LetterChanges(str) {
str = str.toLowerCase();
var al = "abcdefghijklmnopqrstuvwxyz";
var vo = "aeiou";
var newStr = "";
for (var i = 0;i < str.length;i++) {
if (al.charAt(al.indexOf(str.charAt(i))) == "z") {
newStr += "A";
}
else if (str.charAt(i) == " "){
newStr += " ";
}
else {
if (al.charAt(al.indexOf(str.charAt(i))+1) == vo.charAt(vo.indexOf(str.charAt(i)))) {
newStr += vo.charAt(vo.indexOf(str.charAt(i))+1).toUpperCase();
}
else {
newStr += al.charAt(al.indexOf(str.charAt(i))+1)
}
}
}
console.log(newStr);
}
LetterChanges("Argument goes here")
这会将以下内容返回到控制台:
bshvnfou hpft ifsf
但我需要返回的是:
bshvnfOU hpft Ifsf
我不知道为什么我的.toUpperCase() 不起作用。非常感谢您提供的任何帮助!
【问题讨论】:
标签: javascript