좋은 강의 해주셔서 감사드립니다.
계속 코드를 짜보았지만, 열어보면 무한 로딩만 걸리다가 디버그툴에 의해 중지되기만 하고, 결국 돌아가지를 않아서요 :(
몇 번을 살펴보아도 아직 부족한 탓에 문제점을 찾질 못했습니다.
코드 리뷰 한번 부탁드립니다.
<!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>
안녕하세요. 지나가던 수강생인데 혹시나 도움이 될까 싶어 답변 남깁니다.
무한 로딩만 걸리다가 디버그툴에 의해 중지되는 문제 -> for문에 i = 0 -> var i =0 으로 바꿔주시면 해결됩니다.
추가로 splitprime 함수에서 배열은 1번이아닌 0번부터 시작하기때문에 i <= this.All.length 를 i < this.All.length 로 바꿔주셔야합니다.