2017-03-18 3 views
1

が定義されています例外TypeError:arrayal [i]が定義されていませんが、それは私がこのように作成された配列を持つ

var gelenveri = document.getElementById("cakalinput").value; 

var arrayal = []; 

arrayal = gelenveri.split(" "); 

私は私の機能のために、このarrayalを使用するが、私はエラー(TypeError例外を取得:arrayal [Iを]ループのために別の内側でこのwhile文で)定義されていませんが、それが定義されています

while(((!(arrayal[i].indexOf('%') > -1)) || (arrayal[i] != "-"))){ 

temizarray[j] = temizarray[j] + arrayal[i]; 
i++; 


} 

私は([i])と、それは文字列型であるarrayal typeofのを見てみてください

。私はこの問題を1時間解決できませんでした。何か案が?

これは私の全体のコードです:

function cakallik() { 
    var gelenveri = document.getElementById("cakalinput").value; 
    var arrayal = []; 
    arrayal = gelenveri.split(" "); 
    var uzunluk = arrayal.length; 
    var temizarray = []; 
    var j = 0; 
    var i = 0; 

    for (; i < uzunluk;) { 
     temizarray[j] = arrayal[i]; //ilk satır alındı 
     i++; 
     j++; 
     temizarray[j] = arrayal[i]; //ikincisatır alındı 
     i++; 
     j++; 
     temizarray[j] = arrayal[i]; //üçüncü satır alındı 
     i++; 
     j++; 
     temizarray[j] = arrayal[i]; //dördüncü alındı 
     i++; 
     j++; 
     temizarray[j] = arrayal[i]; // beşinci alındı 
     i++; 

     while (arrayal[i] != "-") { 
      temizarray[j] = temizarray[j] + arrayal[i]; 
      i++; 
     } 

     i++; 
     j++; 
     temizarray[j] = arrayal[i]; 
     i++; 
     console.log(typeof (arrayal[i])); 

     while (((!(arrayal[i].indexOf('%') > -1)) || (arrayal[i] != "-"))) { 
      temizarray[j] = temizarray[j] + arrayal[i]; 
      i++; 
     } 

     i++; 
     j++; 
     temizarray[j] = arrayal[i]; 
     i++; 
     j++; 
     temizarray[j] = arrayal[i]; 
     i++; 
     i++; 
     j++; 
     temizarray[j] = arrayal[i]; 
     i++; 
     j++; 
     temizarray[j] = arrayal[i]; 
     i++; 
     i++; 
     j++; 
     temizarray[j] = arrayal[i]; 
     i++; 
     j++; 
     temizarray[j] = arrayal[i]; 
     i++; 
     i++; 
     j++; 
     temizarray[j] = arrayal[i]; 
     i++; 
     j++; 
     temizarray[j] = arrayal[i]; 
     i++; 
     i++; 
     j++; 
     temizarray[j] = arrayal[i]; 
     i++; 
     j++; 
     temizarray[j] = arrayal[i]; 
     i++; 
     i++; 
     j++; 
     temizarray[j] = arrayal[i]; 
     i++; 
     j++; 
     temizarray[j] = arrayal[i]; 
     i++; 
     i++; 
     j++; 
     temizarray[j] = arrayal[i]; 
     i++; 
     j++; 
     temizarray[j] = arrayal[i]; 
    } 

    console.log(temizarray); 
} 
+0

whileループチェック 'if arrayal.length> 0' –

+0

@TamilSelvanCまだこのエラーが発生します。 'while'を止めるべきである –

+0

私は 'i ++;'がこの問題の原因となっていると思います... whileループの外側に入れようとしています... –

答えて

0
arrayal[i] is undefined 

エラーメッセージがかなり明確です。 arrayalが定義されていますが、arrayal[i]は、その配列に表示されていない要素にアクセスしようとしているため、定義されていません。

あなたの配列の長さがiより小さい場合は、長さを確認するために条件を追加する必要があります。arrayalの場合も同様です。

while(arrayal.length < i && ((!(arrayal[i].indexOf('%') > -1)) || (arrayal[i] != "-"))){ 

temizarray[j] = temizarray[j] + arrayal[i]; 
i++; 


} 
+0

ですが、私のforループは(; i capzyel

+0

私はコード全体を追加しました – capzyel

+0

すみませんでした。あなたは大丈夫です:) – capzyel

関連する問題