1. ホーム
  2. javascript

[解決済み] JavaScriptを使用して、文字列内の各単語の最初の文字を大文字にするにはどうすればよいですか?

2022-04-20 20:32:52

質問

文字列内のすべての単語の最初の文字を大文字にする(文字列をタイトルケースに変換する)関数を書こうとしています。

例えば、入力が "I'm a little tea pot" を期待しています。 "I'm A Little Tea Pot" が出力されます。しかし、この関数が返すのは "i'm a little tea pot" .

これは私のコードです。

function titleCase(str) {
  var splitStr = str.toLowerCase().split(" ");

  for (var i = 0; i < splitStr.length; i++) {
    if (splitStr.length[i] < splitStr.length) {
      splitStr[i].charAt(0).toUpperCase();
    }

    str = splitStr.join(" ");
  }

  return str;
}

console.log(titleCase("I'm a little tea pot"));

解決方法は?

変更した内容を再度配列に代入していないので、せっかくの努力が無駄になっています。これを試してみてください。

function titleCase(str) {
   var splitStr = str.toLowerCase().split(' ');
   for (var i = 0; i < splitStr.length; i++) {
       // You do not need to check if i is larger than splitStr length, as your for does that for you
       // Assign it back to the array
       splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].substring(1);     
   }
   // Directly return the joined string
   return splitStr.join(' '); 
}

document.write(titleCase("I'm a little tea pot"));