我正在尝试一个coderbyte挑战,并在repl.it我的代码工作。在jsfiddle,使用JSHint,它说一切看起来都很棒。
然而,当我在coderbyte网站上测试参数时,它在参数列表后面显示“SyntaxError:missing”。我不明白为什么我在那里得到错误但在其他网站上却没有?我一直在看这个约一个小时,不知道怎么看待它。
如果您有任何建议,我真的很感激。谢谢你的阅读。
function LetterCapitalize(str) {
var phrase = str.split(""), i = -1, a = 0;
for (i = 0; i < phrase.length; i++) {
if (i === 0) {
phrase[i] = phrase[i].toUpperCase();
}
else if (phrase[i] === " ") {
phrase[i + 1] = phrase[i + 1].toUpperCase();
}
}
a = phrase.join(" ");
console.log(a);
}
LetterCapitalize("hello world");
答案 0 :(得分:1)
我在您的代码中看到了一个错误,尽管不是语法错误。如果phrase[i + 1]
以空格结束,则str
会崩溃。在那种情况下,你在最后一个角色,找到一个空格,并试图访问最后一个字符+ 1,这是不可能的。
我至少可以验证我的代码是否有效。试试这个:
function letterCapitalize(str) {
var phrase = str.split('');
for (i = 0; i < phrase.length; i++) {
if (i == 0) {
phrase[i] = phrase[i].toUpperCase();
}
else if (phrase[i] == ' ') {
if (i + 1 < phrase.length) phrase[i + 1] = phrase[i + 1].toUpperCase();
}
}
return phrase.join('');
}
alert(letterCapitalize("hello world"));
&#13;