2017-05-14 25 views
-1

私は宿題の仕事をしています。私は、その単語をその文章に書かれた文章で大文字にする関数を書く必要があります。私が持っていたアイデアは、各単語を配列に変換し、その配列の各項目の最初の文字を対象としたループを作成し、その配列を文字列に戻すことでした。私が思いついたコードはこれです文章中の各単語を大文字にする - javascript

function titleCase(string) { 
    var words = string.split(' '); 
    for (var i = 0; i < words.length; i++) { 
    const lettersUp = ((words[i])[0]).toUpperCase(); 
    const result = words[i].replace((words[i])[0], lettersUp); 
    return result; 
    } 
} 

私が今問題になっているのは、配列の最初の単語だけです。トラブルシューティングから私はループを台無しにしている気がしていますが、どう考えているのか分かりません。どんな助けでも大歓迎です。おかげさまで

+1

最初の反復から戻ってきたので、ループは役に立たない。 –

+0

ループ内に戻るためです。 – Nekomajin42

+0

'return string.replace(/ \ b [a-z]/g、c => c.toUpperCase());' – 4castle

答えて

0

コードが機能しないように、最初の反復から戻ってきます。

function titleCase(string) { 
    var words = string.split(" "); 
    for (var i = 0; i < words.length; i++) { 
     const lettersUp = ((words[i])[0]).toUpperCase(); 
     words[i] = words[i].replace((words[i])[0], lettersUp); 
    } 
    return words.join(" "); 
} 

正規表現は、移動するための方法であるかの:あなたが探しているものを

はこのようなものです。試してみてください。

0

できるだけシンプルにしましょう - lettersUpなどの追加変数は必要ありません。words配列の文字列を操作するだけで済みます。

function titleCase(str) { 
    var words = str.split(' '); 
    for (var i = 0; i < words.length; i++) { 
    words[i] = words[i].charAt(0).toUpperCase() + words[i].substring(1);  
    } 
    return words.join(' '); 
} 
関連する問題