2015-09-25 43 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>"); 
});