2016-03-30 19 views
-1

以下のコードはなぜ機能しませんか?使命は、各単語の最初の文字を大文字にすることです。(JavaScript)

function titleCase(str){ 
    var newStr = str.split(" "); //split string turn it into seperated words[] 
    var resutl; 

    for(vari=0; i < newStr.length; i++){ //iterate all words 
     var result = newStr[i].charAt(0).toUpperCase + 

     // find first letter and turn it into capital 
     newStr[i].subString(1).toLowerCase(); 
    } 
    return result.join(" "); 
} 
+1

vari = 0スペースがなく、var i = 0、変数 'result'の正しいスペルもループの外で一度初期化してください –

+0

デバッグに関する質問は、あなたが見ている動作と、代わりに、 "このコードは機能しません"というメッセージだけでなく、 –

答えて

0

結果はコードでは文字列であり配列ではありません。文字列に参加することはできません。

ループの繰り返しごとに、変数結果を新しい単語に置き換えます。結果配列[]を初期化して各結果を配列にプッシュし、ループが完了した後に配列を結合する必要があります。

0

スペースに文字列を爆発し、以下の機能とそれを繰り返す:

function ucfirst(str) { 
    str += ''; // make sure str is really a string 
    var f = str.charAt(0).toUpperCase(); 
    return f + str.substr(1); 
} 
+1

'str + = '';' do? – martijnn2008

+0

それは文字列に変換されることを確認するためにチーズな方法:) – Garytje

+0

編集提案ありがとう! – Garytje

0

resultニーズを配列すると、また、あなたが例えば、あなたのコード内のいくつかの誤植を持っています()

function titleCase(str) { 
 
    var newStr = str.split(" "); 
 
    var result = []; 
 
    for (var i = 0; i < newStr.length; i++) { 
 
     result.push(newStr[i].charAt(0).toUpperCase() + newStr[i].substring(1).toLowerCase()); 
 
    } 
 
    return result.join(' '); 
 
} 
 

 

 
var str = 'hELLO wORLD'; 
 

 
document.write(titleCase(str));

0

不足しているあなたはこれを試すことがあります。

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

var result = []; 

for(var i=0; i < newStr.length; i++){ 
    result.push(newStr[i].charAt(0).toUpperCase() + 
    newStr[i].substring(1).toLowerCase()); 

} 

    return result.join(' '); 

} 

別のアプローチ:

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

return words.map(function(word){ 
    return word.charAt(0).toUpperCase() + word.substring(1).toLowerCase(); 
    }).join(" "); 
} 
0

は、正規表現を使用してみてください

var data = "The mission is to turn each word's first letter into capital"; 
data = data.replace(/ (.)/g,function(w){return w.toUpperCase()}); 

欠点:これは最初の文字を大文字にしません。