2017-02-18 15 views
-3

エラーはtoString()機能によって生成されます。ここでどうすればこのtoString()エラーを解決できますか?

"error" "TypeError: Cannot read property 'toString' of undefined

Image of error

コードです:

while( items[i][j].toString().charCodeAt() < items[i][j-1].toString().charCodeAt() ) 

    { 
    var temp =items[i][j]; 

    items[i][j]=items[i][j-1]; 

    items[i][j-1]=temp ; 

    j=j-1; 

    } 
+0

をエラーとは何ですか? – Caleb

+0

すべての関連コードを表示する必要があります。 –

+0

'.charCodeAt()'に何も渡していません。あなたはそれが何を期待していますか? – Pointy

答えて

0

最終的に[j-1]が存在しないインデックスにアクセスしようとしているため、エラーが発生します。

var j = 0; 
console.log(items[i][j-1]); // undefined 

console.log(items[i][-1]); // undefined 

とは、undefined値は方法の使用を許可しない:典型的な配列を想定すると、それはときに発生します。これを避けるために

、ループはまた、それはその終わりに達していますかどうかを確認する必要があります

while (j > 0 && items[i][j]...) { 
    // ... 
    j=j-1; 
} 
0

あなたはj変数が0に等しくないことを、よろしいですか?

あなたのような2円を持っている場合:

var arr = [[1,2,3], 
      [4,5,6], 
      [7,8,9]]; 

for (var i = 0; i < arr.length; ++i) { 
    for (var j = 0; j < arr[i].length; ++j) { 
    arr[i][j - 1].toString() // error 
    } 
} 

jが等しいため-1初めて、すなわち「未定義」あなたは、エラーを持って、未定義のtoString()メソッドに用

設定開始値を持っていませんj = 1となり、このエラーは解決されます。

+0

ありがとう..それは動作します.. –

関連する問題