【发布时间】:2021-02-22 05:37:48
【问题描述】:
错误显示“AssertionError: 预期的‘永不放弃’完全等于‘永不放弃’” 而且我无法弄清楚为什么忽略字符串开头的空白。这是我的代码:
function letterCapitalize(str) {
if (str === '') {
return ''
}
let string = '' //array to string
let word = str.split(' ')
for (let i = 0; i < word.length; i++) {
if (word[i] !== '') {
string = string + word[i][0].toUpperCase() + word[i].slice(1, word[i].length) + ' '
} else if (word[i] === '') {
string = ' ' + string
}
}
return string.slice(0, string.length - 1)
}
控制台日志示例包括:
let output1 = letterCapitalize('hello world');
console.log(output1); // "Hello World"
let output2 = letterCapitalize('javascript is sexy ');
console.log(output2); // "Javascript Is Sexy "
【问题讨论】:
-
您的测试似乎需要在开头和结尾留一个空格。
-
我不确定你指的是哪一行;
-
在您的
else if中,您在(整个)字符串的开头附加了一个空格。您应该将其添加到字符串的末尾。 (就像你在if中所做的那样。) -
请向我们展示测试用例的代码。您的测试似乎需要大写以外的其他内容。
-
@Ivar 恐怕测试结果仍然是“ AssertionError: expected ' NEVER GIVE UP' to deeply equal ' NEVER GIVE UP ' ”。问题是“NEVER”之后的双空格没有出现。也许用数组重写?
标签: javascript string uppercase splice