如果传递了true,则尝试创建一个返回UpperCamelCase
的函数,如果为false则尝试返回lowerCamelCase
。
到目前为止,我已经确定了第一位,但无法弄清楚如何忽略字符串的第一个字母。我使用了charAt[0]
,但只返回第一个字符。
到目前为止,这是我的代码:
function sentenceToCamelCase(str, bool) {
if (bool) {
return str
.toLowerCase()
.split(" ")
.map(w => w[0].toUpperCase() + w.substr(1))
.join("");
} else {
return str
.toLowerCase()
.split(" ")
.map(w => w[0].toUpperCase() + w.substr(1))
.join("");
}
}
我收到此错误:
AssertionError:期待' ThisSentence'非常平等地对待这个问题'
对JS来说很新,有人可以帮忙吗?谢谢。
答案 0 :(得分:1)
如果bool
参数仅用于将输出的第一个字符更改为小写或大写,则可以使用下面的解决方案。如果这不是你想要的,请在评论中告诉我。
function sentenceToCamelCase(str, bool) {
let res = str
.toLowerCase()
.split(" ")
.map(w => w[0].toUpperCase() + w.substr(1))
.join("");
if(bool) {
return res[0].toUpperCase() + res.substr(1);
}
else {
return res[0].toLowerCase() + res.substr(1);
}
}
console.log(sentenceToCamelCase("this sentence", true));
console.log(sentenceToCamelCase("this sentence", false));
答案 1 :(得分:1)
你可以只搜索空格和一个字符并根据布尔值替换。
function sentenceToCamelCase(str, bool) {
var i = +bool;
return str.replace(/(^|\s+)(.)/g, (_, __, s) => i++ ? s.toUpperCase(): s);
}
console.log(sentenceToCamelCase('once upon a time', true));
console.log(sentenceToCamelCase('once upon a time', false));