大写:JavaScript中字符串的第一个元素
错误显示“AssertionError:预期的‘永不放弃’与‘永不放弃’完全相等” 我不明白为什么字符串开头的空格会被忽略。这是我的密码:大写:JavaScript中字符串的第一个元素,javascript,string,uppercase,splice,Javascript,String,Uppercase,Splice,错误显示“AssertionError:预期的‘永不放弃’与‘永不放弃’完全相等” 我不明白为什么字符串开头的空格会被忽略。这是我的密码: function letterCapitalize(str) { if (str === '') { return '' } let string = '' //array to string let word = str.split(' ') for (let i = 0; i < word.length; i++) {
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)
}
您的测试似乎需要在末尾留一个空格,如果您真的想大写字符串,请尝试此方法,或者共享您的测试用例代码,以便我可以查看
const capitalize = str => {
if (!str) return "";
return str
.split(" ")
.map(el => el[0].toUpperCase() + el.slice(1))
.join(" ");
}
你的测试似乎需要一个开头和结尾的空格。我不确定你指的是哪一行;在
else if
中,您将在(整个)字符串的开头追加一个空格。您应该将其添加到字符串的末尾。(就像您在if
中所做的那样)请向我们展示测试用例的代码。您的测试似乎需要的不是大写。@Ivar我担心测试结果仍然是“断言错误:预期的‘永不放弃’与‘永不放弃’完全相等”。问题是“从不”后面的双空格不出现。可能使用数组?1重写。它以字符串类型返回。2.当空字符串为3时返回空字符串。当给出4时返回“”。当给出5时返回“你能做到”。返回' 从未 给予 向上的 ' 什么时候 从未 给予 向上的 ' 答案是6。当给出“You Have A Idea”时,返回“You Have A Idea”。3,5是显示错误的。错误代码3为AssertionError:预期“”等于“”,5为5。AssertionError:期望“永不放弃”与“永不放弃”完全相等。啊,好了,现在我明白了。你不应该删除任何空格。No 5显示错误,因为您的函数从末尾删除了一个空间。我想我可以通过添加“”来保留结尾的空间,就像我在if上所做的那样。然而,我不明白为什么我的代码中的双空格after永远不会消失,以及如何保存它们。
const capitalize = str => {
if (!str) return "";
return str
.split(" ")
.map(el => el[0].toUpperCase() + el.slice(1))
.join(" ");
}