2016-08-25 2 views
1

콘솔에서이 줄을 한 줄씩 추가하려고 시도했지만 각 줄이 제대로 작동하는 것처럼 보였습니다. 그러나 괄호를 짝수로 입력하면 브라우저가 멈 춥니 다. 그것은 아마 분명하지만, 그것은 지금 나를 용서하고있다. 아래 코드 :간단한 JS 실습으로 브라우저가 충돌 함

$('body').append('<input type="number" id="myInput"><input type="submit" id="submit">'); 
$('#submit').click(function(){ 
     var myVal = $('#myInput').val(); 
     myArray = myVal.split(""); 
     for (var i = 0; i < myArray.length -1; i++){ 
      if((myArray[i]%2 == 0) && (myArray[i+1]%2 == 0)){ 
       myArray.splice(i,0,'-') 
      }  
     } 
     console.log(myArray); 
}); 
+3

루프에서 말했다 배열을 수정 한 후 'myArray.length'를 사용하는 것은 변하지 않았고 앞으로도 나쁜 관행입니다 . 계속 배열에 물건을 넣으면, 언제 'myArray.length'보다'<'가 될까요? myArray.lenght는 각 루프 단계에서 평가된다는 점에 유의하십시오. –

+2

실제로 배열에 '-'를 계속 입력하므로 메모리가 부족합니다. 찾고있는 논리가 확실한가요? "i가 짝수이고 i + 1도 짝수이면 i 뒤에 문자열에 빼기 부호를 삽입하십시오." – Shilly

+0

OK 루프 카운터에서 증가 된 배열 길이를 사용하여 포블을 봅니다 ... – Robin

답변

0

난 당신이 함께 할 필요가 무엇인지 확실하지 오전하지만이 코드가 작동합니다

$('body').append('<input type="number" id="myInput"><input type="submit" id="submit">'); 
$('#submit').click(function(){ 
    var myVal = $('#myInput').val(); 
    myArray = myVal.split(""); 
    myArraylength = myArray.length - 1; 
    for (var i = 0; i < myArraylength; i++){ 
     if((myArray[i]%2 == 0) && (myArray[i+1]%2 == 0)){ 
      myArray.splice(i+1,0,'-') 
     } 
    } 
    console.log(myArray); 
}); 
+0

이것은 앞쪽에 빼기 부호를 붙이지 만 실제로는 짝수 사이에 빼기 부호를 삽입하는 것이었다. – Robin

+0

빈 배열을 조건부로 빌드하는 것이 더 좋은 방법일까요? – Robin

관련 문제