2015-09-25 39 views
-2

我覺得有些問題比想象的要困難得多。所以我只是想知道是否有更簡單的方式來編寫我的代碼。基本上只是想讓用戶知道如何熱門||他們感到冷,但感覺就像我做了太多的代碼行。 Math.abs()是將每個數字轉換爲正數的最簡單方法嗎?任何見解將不勝感激。這個代碼可以用更少的步驟完成嗎?

$("#guessButton").click(function(e) { 
     e.preventDefault(); 
     counter++; 
     $('#count').text(counter); 
     var guess = $('#userGuess').val(); 
     if (guess == number) { 
      $('#feedback').text("You've guessed the number!!"); 
      $('#guessList').append("<li>"+guess+"</li>"); 
     } else if (Math.abs(number-guess) <= 50 && Math.abs(number-guess) >= 30) { 
      $('#feedback').text("Cold"); 
      $('#guessList').append("<li>"+guess+"</li>"); 
     } else if (Math.abs(number-guess) <= 30 && Math.abs(number-guess) >= 20) { 
      $('#feedback').text("Warm"); 
      $('#guessList').append("<li>"+guess+"</li>"); 
     } else if (Math.abs(number-guess) <= 20 && Math.abs(number-guess) >= 10) { 
      $('#feedback').text("Hot"); 
      $('#guessList').append("<li>"+guess+"</li>"); 
     } else if (Math.abs(number-guess) <= 10 && Math.abs(number-guess) >= 1) { 
      $('#feedback').text("Very Hot"); 
      $('#guessList').append("<li>"+guess+"</li>"); 
     } else if (Math.abs(number-guess) > 50) { 
      $('#feedback').text("Ice Cold"); 
      $('#guessList').append("<li>"+guess+"</li>"); 
     } 
    }); 
+2

Ewww ...首先保存Math.abs(猜測)到一個變量。 –

+3

這個問題更適合http://codereview.stackexchange.com。 –

+2

是的,在很多方面。一對夫婦:1.不要重複自己,例如,你可以多次計算'Math.abs(猜數)',當你可以一次性完成並命名結果_diff_。 2.看看_switch_。 3.將輸出生成一個字符串,然後在該字符串的底部調用$('#guessList')。append',而不是將所有這些調用放在中間塊中。 – dandavis

回答

1

以下是對您的問題的快速回復,我認爲這可能有所幫助。我對全局變量做了一些假設,但應該對我希望的大部分有所幫助。

$("#guessButton").click(function(e) { 
    e.preventDefault(); 
    counter++; //ill assume this is global 
    $('#count').text(counter); 

    var feedBack; 
    var guess = $('#userGuess').val(); 
    var absVal = Math.abs(number-guess); //ill assume number is global 

    if (guess == number) { 
     feedBack = "You've guessed the number!!"; 

    }else if (absVal > 50) { 
     feedBack = "Ice Cold"; 

    }else if (absVal >= 30) { 
     feedBack = "Cold"; 

    } else if (absVal >= 20) { 
     feedBack = "Warm"; 

    } else if (absVal >= 10) { 
     feedBack = "Hot"; 

    } else if (absVal >= 1) { 
     feedBack = "Very Hot"; 

    } 

    $('#feedback').text(feedBack); 
    $('#guessList').append("<li>"+guess+"</li>"); 
});