2015-02-02 5 views
0

47 ~ 28 사이의 모든 숫자를 높은 순 위에서 가장 낮은 순으로 표시하려고합니다.For 루프에 내 범위가 표시되지 않습니다.

내 코드가 내게 "28, 28"이라고 대답합니다.

누구든지 내가 잘못 한 것을 도와 줄 수 있습니까? 나는 단지 내가 자바 스크립트에 아직도 아주 새로운 것을 추가하고 싶다! 루프

var fx = ""; 

    var printRangeReversed = function(rangeStart1,rangeStop1){ 
     for (var a3=rangeStart1; a3 > rangeStop1; a3--); 
      fx+=a3+","; 
      return fx=rangeStop1&&(fx+=a3),fx; 
      return fx = fx.substr(0,fx.length-1); 
    } 

ANSWER = printRangeReversed(47,28); 

답변

6

; 끝나는 때문에 루프 외부 것처럼 후속 라인은 을 실행한다. 또한 첫 번째 return 아래 코드가 도달 할 수 없으므로 두 번째 return 문이 중복됩니다.

더 나은 코드는 당신이 원하는 아니므로 내가 대신 >>=을 사용 했으므로

var fx = ""; 
var printRangeReversed = function(rangeStart1,rangeStop1){ 
    var arr = []; 
    for (var a3 = rangeStart1; a3 >= rangeStop1; a3--) 
     arr.push(a3); 
    return arr.join(); // same as arr.join(",") 
} 
fx = printRangeReversed(47, 28); 

참고가 될 것입니다.

+0

와우, 감사합니다. 나는 나 자신을 보았어 야했다! 완벽하게 일했습니다! – micke

+0

@micke 또한'> ='내 편집을 확인하고 싶습니다. –

0

루프 내부에서 반환하고 싶지 않습니다. 끝내고 결과를 반환하십시오. 예 :

var printRangeReversed = function(rangeStart1,rangeStop1){ 
    var fx = ""; 
    for (var a3=rangeStart1; a3 > rangeStop1; a3--) { 
     fx+=a3+","; 
    } 
    return fx; 
} 

ANSWER = printRangeReversed(47,28);