Javascript资本化

时间:2018-06-18 13:30:14

标签: javascript string

我有一个像“约翰史密斯住在欧洲”的字符串。而我正试图将其作为“约翰史密斯生活在欧洲”。即名字和姓氏必须大写。这是我的代码

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)

1 个答案:

答案 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的东西,然后代码按预期工作:)