2017-03-18 3 views
1

정의된다 : 내 기능이 arrayal를 사용하지만 에러를 (형식 오류를 얻을형식 오류는 : arrayal [I]는 미정이지만 내가 이렇게 생성 된 배열이

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

var arrayal = []; 

arrayal = gelenveri.split(" "); 

을 : [I를 arrayal ] 루프에 다른 내부에이 while 문에서) 정의이지만 정의된다

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

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


} 

제가 ([I])가 문자열 유형에 대해서 typeof arrayal보고하려고

. 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 루프 체크'arrayal.length> 0' –

+0

@TamilSelvanC 아직도 해당 오류에 들어갈 경우. 당신이'while'을 멈춰야 만합니다. –

+0

'i ++; '가이 문제를 while 루프 밖에 놓으려고 시도한 것 같아요. –

답변

0
arrayal[i] is undefined 

오류 메시지는 매우 분명하다. arrayal이 정의되었지만 arrayal[i]은 해당 배열에 표시되지 않은 요소에 액세스하려고하므로 정의되지 않았습니다.

이 Inshort는, 배열 arrayal 길이가 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