2014-12-22 7 views
2

JS를 배우고 있으며 코딩 문제를 해결하려고합니다. 나는 매개 변수를 입력 할 때 사용자에게 전체 발전기 양과 총 와트를 경고하는 경고가 있다고 가정합니다. 문제는 코드 판독기가 하나 이상을 경고한다고 말합니다. 내가 경고하는 것은 여러 번 호출되는 것입니까? 나는 또한이 시도했습니다경고가 두 번 이상 반환됩니다.

function changePowerTotal(totalMW,genID,status,powerMW){ 

    if(typeof(status) == "on" || typeof(status) == "ON"){ 
    alert("Generator #"+genID+" is now on, adding "+powerMW+" MW, for a total of "+ (totalMW) +" MW!"); 
    return false; 
    } else { 

    if(totalMW == 0){ 

     alert("Generator #"+genID+" is now off, removing "+powerMW+" MW, for a total of "+ (powerMW) +" MW!"); 

    } else { 

     alert("Generator #"+genID+" is now off, removing "+powerMW+" MW, for a total of "+ (totalMW - powerMW) +" MW!"); 
    } 

    return false; 
    } 
} 
changePowerTotal(0,2,"off",62); 

:

function changePowerTotal(totalMW,genID,status,powerMW){ 

    var genStatus = ""; 

    if(status === "on"){ 

    genStatus = " is now on, adding " 
    totalMW = totalMW + powerMW; 

    } else { 

    genStatus = " is now off, removing " 
    totalMW = totalMW - powerMW; 

    } 

    alert("Generator #"+genID+genStatus+powerMW+" for a total of "+totalMW+" MW!"); 

} 

changePowerTotal(142,2,"off",62); 
+1

첫 번째 예제는 **에 대해 한 번 경고하는 것 [나] (http://jsfiddle.net/npp8w7y8/) ** – brbcoding

+2

이것은 Codecademy에서 일입니까? 특정 답변을위한 자체 통역사가있는 많은 사이트는 정말 까다 롭습니다. 귀하의 코드는 괜찮아 보이지만 여러 개의 '경고문'은 여기서 범인처럼 들립니다. 다시 말하지만 잘못된 것은 아닙니다.하지만 두 번째 접근 방식은 객관적으로 더 좋습니다. 두 번째 버전에서 똑같은 불만을 제기합니까? 아니면 경고하는 또 다른 임의의 문제가 있습니까? –

+0

나는 CodeSchool를 사용하고, 나는뿐만 아니라 두 번째 솔루션과 같은 오류 경고를 얻을 : 잘못된 제출 함수 번 이상 경고한다. 마치 통역사와의 오류입니다. –

답변

3

, 실수로 두 번 호출 당을 기능에 문제가 추측하지하고 여기에 내 첫 번째 시도였다? 확인했는지,이 기능이 두 번 경고 할 수있는 방법이 없는지 확인하십시오. 실수로 두 번이나 호출해야합니다.

+0

방금 ​​한 번만 불렀습니다. 아마도 오류가 발생하지 않도록 특정 방법으로 코드를 작성해야한다고 생각합니다. 당신의 도움을 주셔서 감사합니다. –

0

도움을 주셔서 감사합니다. 나는 해결책을 발견, 여기있다 :

function changePowerTotal (totalMW, genID, genStatus,genMW){ 

    var curStatus = " "; 
    var sumMW = 0; 

    if(genStatus === "off"){ 

    curStatus = " is now "+genStatus+", removing "; 
    alert("Generator #"+genID+curStatus+genMW+" MW, for a total of "+totalMW+"MW!"); 
    return totalMW + genMW 

    } else { 

    curStatus = " is now "+genStatus+", adding "; 
    sumMW = genMW + totalMW; 
    alert("Generator #"+genID+curStatus+genMW+" MW, for a total of "+(totalMW + genMW)+"MW!"); 
    return totalMW + genMW 

    } 
} 
+0

전원을 껐다 뺄 때 어떻게 작동합니까? 당신은 당신의 리턴 값이나 당신의 경고 문자열을 위해 그것을하지 않겠습니다. –

+0

나는 함수를 빼는 해를 시도했지만 성공하지 못했습니다. 나는 그들이 단지 하나의 "on"과 "off"를 0 totalMW로 원한다고 가정하고있다. 나는 많은 변주곡을 시도했고 이것은 지나갈 유일한 것이다. –

관련 문제