エラーはtoString()
関数によって生成されます。
"error" "TypeError:未定義のプロパティ 'toString'を読み取れません
コードは次のとおりです。
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;
}
最終的に、[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;
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加