2017-07-14 2 views
-4

誰でも私がここで間違っていることを理解するのを手伝ってください。私は、JavaScriptのprogramming.Iに新しいが、このエラーを取得していています:未定義のプロパティ 'charAt'を読み取ることができません

Cannot read property 'charAt' of undefined.

//Return the first letter of given string. 
function titleCase(str) { 
    var newStr = str.split(' '); 
    for (var i = 0; i <= newStr.length; i++) { 
    console.log(newStr[i].charAt(0)); 
    } 
} 
titleCase("Coding is not easy"); 

<!-- end snippet --> 
+6

'<='は '<'にする必要があります。 – Tushar

+0

配列のコンテンツをループする正しい方法については、[JavaScriptの各配列について*?](https://stackoverflow.com/questions/9329446/for-each-over-an-array-in-javascript)を参照してください。 。 –

答えて

0

あなたがループ状態が更新されますする必要があります。私は4になり、0すなわち反復から始まるまで、あなたの文字列がちょうどこのラインから=記号を削除5回

function titleCase(str){ 
 
    var newStr = str.split(' '); 
 
    for(var i = 0; i < newStr.length; i++){ 
 
     console.log(newStr[i].charAt(0)); 
 
    } 
 
} 
 
titleCase("Coding is not easy");

+0

"..." i "が**' 4' ** "になるまでは、5ではありません。 –

+0

これはコメントであり、答えではありません。 –

0

に行われる4つのワードが、反復処理ループが含まれる参照してください

for(var i = 0; i <= newStr.length; i++){

function titleCase(str){ 
 
    var newStr = str.split(' '); 
 
    for(var i = 0; i < newStr.length; i++){ 
 
     console.log(newStr[i].charAt(0)); 
 
    } 
 
} 
 
titleCase("Coding is not easy");

+0

これはコメントであり、答えではありません。 –

0

function titleCase(str){ 
 
    var newStr = str.split(' '); 
 
    for(var i = 0; i < newStr.length; i++){ 
 
     console.log(newStr[i].charAt(0)); 
 
    } 
 
} 
 
titleCase("Coding is not easy");

i <= newStr.lengthあなたは同じ長さまで反復し、ゼロから始めていました。そこに問題は、あなたが未定義の値を得ている最後にあります。 あなたの場合、newStr配列の長さは5で、5番目の要素も取得しようとしていますが、4つの値しか存在しません。

+0

これはコメントであり、答えではありません。 –

関連する問題