안녕하세요, 코드리뷰 부탁드리려고 합니다.

해결됨
Go9 프로필

좋은 강의 해주셔서 감사드립니다.

계속 코드를 짜보았지만, 열어보면 무한 로딩만 걸리다가 디버그툴에 의해 중지되기만 하고, 결국 돌아가지를 않아서요 :(
몇 번을 살펴보아도 아직 부족한 탓에 문제점을 찾질 못했습니다.

코드 리뷰 한번 부탁드립니다. 

 

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
</head>
<body>
    <script>
        var numbers = {};
        numbers.Prime = [];
        numbers.All = [];

        numbers.isprime = function(number) {
            for(i = 2; i < number; i++) {
                if(number % i === 0) {
                    return false;
                }
            }   
            return true;
        };
        
        numbers.AllNumber = function(maxnum) {
            for(i = 2; i <= maxnum; i++) {
                this.All.push(i);
            }
        };

        numbers.splitprime = function() {
            for(i = 0; i <= this.All.length; i++) {
                var a = this.All[i];
                if (this.isprime(a)) {
                    this.Prime.push(a);        
                }
            }
        };
        numbers.printprime = function() {
            document.write("전체 소수의 개수: " + this.Prime.length + "<br>" + "<br>");
            for(var i = 0; i < this.Prime.length; i++) {
                document.write((i+1) + "번째 소수: " + this.Prime[i] + "<br>");
            }
        };
        
        numbers.AllNumber(10);
        numbers.splitprime();
        numbers.printprime();

    </script>    
</body>
</html>
TTOzzi 프로필
TTOzzi 9달 전

안녕하세요. 지나가던 수강생인데 혹시나 도움이 될까 싶어 답변 남깁니다.

무한 로딩만 걸리다가 디버그툴에 의해 중지되는 문제 -> for문에 i = 0 -> var i =0 으로 바꿔주시면 해결됩니다.

추가로 splitprime 함수에서 배열은 1번이아닌 0번부터 시작하기때문에 i <= this.All.length i < this.All.length 로 바꿔주셔야합니다.

코드스쿼드 정호영 프로필
코드스쿼드 정호영 9달 전

참 그리고 이렇게 디버깅이 어려울 때는 console.log(변수명)을 이용해서 중간중간에 값을 찍어보는 방법과 브레이크포인트라는 것을 활용하는 방법도 있으니 검색해 보세요. 

지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스