2015-02-07 4 views
-3

일부 기본 자바 스크립트를 다듬 으려하고 있는데 어떻게 해결할 지 궁금합니다. 나는 길을 찾았지 만 꽤 못생긴 것이고, 나는 그들이 무엇을하는지 알려주는 좀 더 경험 많은 눈에 감사 할 것이다. 기본적으로 숫자 1 ~ 100을 반복하고 각 줄마다 5 개의 그룹으로 모든 짝수를 인쇄합니다. 따라서 라인 1은 2,4,5,8,10이고, 라인 2는 12,14,16,18,20입니다. 다음은 지금까지 내가 가지고있는 것입니다 :1-100의 짝수를 한 줄에 5 개의 숫자로 인쇄하십시오.

var counter = 0; 
var line=[]; 


for(var i = 0; i<=100; i++){ 
    if(i%2==0){ 
    if(line.length <5){ 
    line[counter] = i; 
    counter++ 
    }else{ 
     console.log(line); 
     line=[]; 
     counter=0; 
     line[counter] =i; 
    } 
    } 
    } 
console.log(line); 

고마워요. 대부분의 가상 프로그래밍 문제와

답변

1

문제는 당신이 0 대신 1에서 반복되어 있는지, 그리고 당신은 else 블록에서 카운터를 증가하지 않는 것입니다.

고정 당신이 얻을 :

var counter = 0; 
var line=[]; 

for (var i = 1; i <= 100; i++) { 
    if (i % 2 == 0){ 
    if (line.length < 5) { 
     line[counter] = i; 
     counter++ 
    } else { 
     console.log(line); 
     line=[]; 
     counter = 0; 
     line[counter] = i; 
     counter++ 
    } 
    } 
} 
console.log(line); 

를 대신 1부터 100까지 루핑 및 수가 2의 단계 2에서 100 만 루프, 심지어 경우에 체크. 카운터가 전혀 필요하지 않은 경우 배열에 항목을 푸시 할 수 있습니다. ifelse 블록의 배열에 항목을 추가하는 코드를 반복하는 대신 한 번만 수행 할 수 있습니다.

당신이 얻을 그 단순화와

: 당신 같은

var line=[]; 

for (var i = 2; i <= 100; i += 2) { 
    if (line.length == 5) { 
    console.log(line); 
    line=[]; 
    } 
    line.push(i); 
} 
console.log(line); 
+0

감사합니다. 정말 도움이됩니다. 나는 당신이 최종 console.log 문을 마지막으로 뱉어 내야 만한다는 것을 알고 기쁘다. 100을위한 마지막 루프는 길이를 5로 만들지 만, 체크를 게시하면 agin을 반복하지 않는다. 감사! – HectorOfTroy407

2
console.log(2,4,6,8,10); 
console.log(12,14,16,18,20); 
console.log(22,24,26,28,30); 
console.log(32,34,36,38,40); 
console.log(42,44,46,48,50); 
console.log(52,54,56,58,60); 
console.log(62,64,66,68,70); 
console.log(72,74,76,78,80); 
console.log(82,84,86,88,90); 
console.log(92,94,96,98,100); 

, 그것은 현실에서 응원의 부족을 해결하고 간단 일을 가장 보람 - 현실은 훨씬 더 복잡하다는 것을 증명해야합니다.

학습 실습은 일반적으로 실습을 할 때 가장 효과적입니다. 나는 코드를 볼 수

+0

에 의해 증가 루프를 사용,이 숙제의 냄새가 난다. 이 답변은 OP가 원하는 것이 거의 확실하지 않지만, 실제로 그들이 요구 한 것입니다. ++ –

+0

숙제가 아닙니다. 나는 인터뷰를 준비하고 간단한 자바 스크립트 루프에 익숙해 져야한다. 그것은 단지 연습입니다. 더구나, 나는 여기에서 시도하지 않고있는 것처럼 아니다. 나는 단지 리팩토링에 대한 여분의 눈 세트를 찾고있다. – HectorOfTroy407

1
var line = []; 
//you are uninterested in odd numbers, so increment the counter by 2 
for(var i = 0; i <= 1000; i = i + 2) { 
    line.push(i); 
    if((i + 2) % 5 === 0) { //every 5 lines print result 
     console.log(line); 
     line = [] 
    } 
} 
0

<script> 
 
    var counter = 0; 
 
    var line = []; 
 
    for (var i = 2; i <= 100; i += 2) { 
 
    line[counter] = i; 
 
    counter++; 
 
    if (line.length == 5) { 
 
     console.log(line); 
 
     counter = 0; 
 
     line = []; 
 
    } 
 
    } 
 
</script>

같지만, 즉 2

관련 문제