0

ここでの関数は、すべての単語の先頭を大文字にすることを想定しています。他にももっと簡単な解決策があることは知っていますが、これが適切に機能しない理由については少し頑固です。毎回私の帰国後に「未定義」に取り組んでいます。

function LetterCapitalize(str) { 

  var c = str[0].charCodeAt(0);
  var letter;
  var result = "";

  if( (c >= "a".charCodeAt(0) && c <="z".charCodeAt(0)) || (c >= "A".charCodeAt(0) && c <="Z".charCodeAt(0)))
  {
    result = str[0].toUpperCase()
  }
  else
  {
    result += str[i];
  }

  for(var i=1; i<=str.length; i++)
  {
        if(str[i-1] == " ")
        {
            letter = str[i].toUpperCase()
            result += letter;
        }
        else
        {
            result += str[i];
        }
  }
       return result; 
}
4

1 に答える 1

0

変えたら

for(var i = 1; i <= str.length; i++)

for(var i = 1; i < str.length; i++)

期待どおりに動作します。現状では、未定義を返す余分な時間に文字列にインデックスを付けています。

また、最初の if/else ステートメントは完全に捨てることができます。とにかくelseステートメントは構文エラーになりますi is undefined

于 2013-08-14T21:43:26.273 に答える