Javascript 这个代码可以用更少的步骤完成吗?
我觉得有些事情比实际情况困难得多。所以我只是想知道是否有一种更短的方式来编写我的代码。基本上只是想让用户知道他们有多热| | |冷,但感觉我用了太多行代码。那么Math.abs()是将每个数字转换为正数的最简单方法吗?如有任何见解,将不胜感激Javascript 这个代码可以用更少的步骤完成吗?,javascript,jquery,html,css,math,Javascript,Jquery,Html,Css,Math,我觉得有些事情比实际情况困难得多。所以我只是想知道是否有一种更短的方式来编写我的代码。基本上只是想让用户知道他们有多热| | |冷,但感觉我用了太多行代码。那么Math.abs()是将每个数字转换为正数的最简单方法吗?如有任何见解,将不胜感激 $("#guessButton").click(function(e) { e.preventDefault(); counter++; $('#count').text(counter);
$("#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>");
}
});
$(“#猜测按钮”)。单击(函数(e){
e、 预防默认值();
计数器++;
$('#count')。文本(计数器);
var guess=$('#userGuess').val();
如果(猜测==数字){
$(“#反馈”).text(“你猜到了数字!!”;
$(“#猜测列表”)。追加(“”+guess+” ”);
}else if(数学绝对值(数字猜测)=30){
$(“#反馈”)。文本(“冷”);
$(“#猜测列表”)。追加(“”+guess+” ”);
}else if(数学绝对值(数字猜测)=20){
$(“#反馈”)。文本(“温暖”);
$(“#猜测列表”)。追加(“”+guess+” ”);
}else if(数学绝对值(数字猜测)=10){
$(“#反馈”)。文本(“热门”);
$(“#猜测列表”)。追加(“”+guess+” ”);
}else if(数学abs(数字猜测)=1){
$(“#反馈”).text(“非常热”);
$(“#猜测列表”)。追加(“”+guess+” ”);
}否则如果(数学绝对值(数字猜测)>50){
$(“#反馈”)。文本(“冰冷”);
$(“#猜测列表”)。追加(“”+guess+” ”);
}
});
以下是对您的问题的快速回答,我认为可能会有所帮助。我对全局变量做了一些假设,但我希望在很大程度上会有所帮助
$("#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>");
});
$(“#猜测按钮”)。单击(函数(e){
e、 预防默认值();
计数器+++;//我假定这是全局的
$('#count')。文本(计数器);
var反馈;
var guess=$('#userGuess').val();
var absVal=Math.abs(数字猜测);//我假设数字是全局的
如果(猜测==数字){
feedBack=“你猜对数字了!!”;
}否则,如果(absVal>50){
反馈=“冰冷”;
}否则如果(absVal>=30){
反馈=“冷”;
}否则如果(absVal>=20){
反馈=“温暖”;
}否则如果(absVal>=10){
反馈=“热”;
}否则如果(absVal>=1){
反馈=“非常热”;
}
$(“#反馈”)。文本(反馈);
$(“#猜测列表”)。追加(“”+guess+” ”);
});
EWW…首先,将Math.abs(数字猜测)保存到一个变量。这个问题更适合于。是的,在很多方面。一对夫妇:1。不要重复你自己,例如你计算了几次Math.abs(数字猜测),当你可以在上面做一次,然后将结果命名为diff.2。查看开关。3.将输出构建成一个字符串,然后调用$(“#猜测列表”)。将该字符串附加到底部的
,而不是将所有这些调用放在中间块。基本上,您是用数字计算用户猜测的距离,然后将距离映射到一个字符串。使用按最大距离升序排列的“最大距离-->字符串”映射,并使用该映射将计算的距离转换为字符串,怎么样?啊,明白了。真的很感谢你的建议,但是否决票是必要的,哈哈。我想问一些新手类型的问题会对我们很多新手有所帮助。但不用担心,我下次不会在这个论坛上这么做。希望有一天我能和你们一样。再次感谢!