由于某种原因“我是一个小茶壶”回归“我是 一个小茶壶“。我希望它是”我是一个小茶壶“。我能够使用.toLowerCase()使字符串全部小写,但我的代码由于某种原因将不会大写第一个字母每个字。任何人都知道为什么?
function titleCase(str) {
str = str.toLowerCase().split(" ");
for (i = 0; i > str.length; i++){
str = str[i].charAt(0).toUpperCase();
}
return str.join(" ");
}
titleCase("I'm a little tea pot");
答案 0 :(得分:1)
希望这有帮助
function titleCase(str) {
var str_arr = str.toLowerCase().split(" ");
for (i = 0; i < str_arr.length; i++){
str_arr[i] = str_arr[i].charAt(0).toUpperCase()+(str_arr[i].substr(1));
}
return str_arr.join(" ");
}
titleCase("I'm a little tea pot");
答案 1 :(得分:1)
大声读这条线
str = str[i].charAt(0).toUpperCase()
“从数组i
中取词str
,取其第一个字符,将其转换为大写并将其指定给str
”。最后一部分将覆盖数组str
此外你的条件错了
试试这个
var words = [];
for(i=0; i < str.length; i++) {
words[i] = str[i];
words[i] = words[i].charAt(0).toUpperCase() + words[i].substring(1);
}
return words.join(" ");
答案 2 :(得分:1)
var str = "i'm a little tea pot";
function titleCaseChange(s)
{
return s.replace(/\w\S*/g, function(t){
return t.charAt(0).toUpperCase() + t.substr(1).toLowerCase();
});
}
var res = titleCaseChange(str);
console.log(res);
答案 3 :(得分:0)
代码永远不会进入你的内循环。
for (i = 0; i > str.length; i++)
应该是
for (i = 0; i < str.length; i++)
答案 4 :(得分:0)
除了与>
和<
混淆之外,由于您在循环中重新分配str的值,因此您不会迭代原始数组中的所有单词并且尝试呼叫str.join()
将失败。您需要将更正后的单词存储在不同的变量中,并且在第一个单词大写后,您需要添加剩余的单词。
function titleCase(str) {
var strArry = str.toLowerCase().split(" ");
var strTemp = []; // Adjusted strings will go here
for (i = 0; i < strArry.length; i++){
// Capitalized the first letter of the word and add the remaining letters of the word
// Then, add the corrected word to the new array
strTemp.push(strArry[i].charAt(0).toUpperCase() + strArry[i].substr(1,strArry[i].length));
}
// Put spaces between the array elements
return strTemp.join(" ");
}
console.log(titleCase("I'm a little tea pot"));
&#13;
答案 5 :(得分:0)
titleCase= function(inputString){
inputString = inputString.toLowerCase().split(" ");
var finalString = [];
for(i=0; i < inputString.length; i++) {
finalString[i] = inputString[i];
finalString[i] = finalString[i].charAt(0).toUpperCase() + finalString[i].substring(1);
}
return finalString.join(" ");
}
&#13;
<!DOCTYPE html>
<html>
<body>
<button type="button"
onclick="document.getElementById('demo').innerHTML = titleCase('hello world, weather is awesome!!')"> titleCase('hello world, weather is awesome!!')</button>
<p id="demo"></p>
</body>
</html>
&#13;
答案 6 :(得分:0)
for
循环是一种代码味道:)
const capWord = word => word ? word.slice(0, 1).toUpperCase() + word.slice(1) : '';
const capSentence = sentence => sentence.split(/\s+/).map(capWord).join(' ');
const result = capSentence('the quick brown fox jumped over the lazy dog');
console.log(result);