我有一个像“约翰史密斯住在欧洲”的字符串。而我正试图将其作为“约翰史密斯生活在欧洲”。即名字和姓氏必须大写。这是我的代码
var str1 = "JOHN SMITH is an good person."
var str2 = str1.toLowerCase();
var str3 = [...str2];
var str4 = str3.slice(0, 2);
var str5 = str4.map(item => {
item.charAt(0).toUpperCase() + item.slice(1);
})
var str6 = [str5, str2]
console.log(str6)
答案 0 :(得分:0)
你基本上是正确的做法,你应该使用适当的变量名称,并可以使用小助手进行大写:
const capitalize = word => word.charAt(0).toUpperCase() + word.substr(1).toLowerCase();
const capitalizeSentence = sentence =>
sentence.split(" ").map((word, pos) => pos < 2 ? capitalize(word) : word).join(" ");
console.log(capitalizeSentence(
"JOHN SMITH is an good person."
));
console.log(capitalizeSentence(
"JOHN SMITH lives in Europe."
));
关于您的代码的一些注意事项:
[...str2]
会为您提供一系列字符,您似乎希望获得str2.split(" ")
所获得的一系列字词。要加入两个字符串[str5, str2]
将不起作用,而是str5 + " " + str2
,但由于str5
是一个数组,您必须加入str5.concat(str2).join(" ")
。最后你需要return
来自mapper的东西,然后代码按预期工作:)