正如标题所示,我必须编写一个用户输入数字的程序,当输入的数字为0时,它输出输入的最高数字。我已经做了大部分工作,我知道只有一点点失踪,但我无法弄明白。
<!DOCTYPE html>
<html>
<head> <meta charset="utf-8" />
<title></title>
<script style="text/javascript">
function numbers(){
var numbers = 0;
var outMessage = "";
var numbersArray = new Array(numbers);
do{
numbers = prompt('enter 0 to cancel', 0);
}while(isNaN(numbers));
var maxNum = Math.max.apply(null, arr);
alert(maxNum);
document.getElementById('result').innerHTML = maxNum;
}
</script>
<body>
<p>Numbers Exercise</p>
<p id="numbers"></p>
<input type="button" value="Start" onClick = "numbers();">
<label id='result' />
</body>
</html>
答案 0 :(得分:0)
您的一个问题是您写的是var maxNum = Math.max.apply(null, arr);
,但您的意思是var maxNum = Math.max.apply(null, numbersArray);
。我认为这只是忘记更改该阵列名称。
然后在你检查NaN(numbers)
的时候,如果输入有效输入,它将始终返回false。你想检查`!(NaN(数字)),这样当数字无效时循环退出
然后我在你的do中检查if(numbers != 0)
,确定是否要使用numbersArray.push(numbers)
将其推入数组,如果没有则打破循环。
我创建了一个JSFiddle:https://jsfiddle.net/4otwrnzL/
答案 1 :(得分:0)
我认为这可以胜任,确定这是你想要的。
<!DOCTYPE html>
<html>
<head> <meta charset="utf-8" />
<title></title>
<script style="text/javascript">
function numbers(){
var numbers = 0;
var outMessage = "";
var numbersArray = new Array(numbers);
do{
var number = prompt('enter 0 to cancel', 0);
numbersArray.push(number);
}while(isNaN(number)||number != 0);
var maxNum = Math.max.apply(null, numbersArray);
alert(maxNum);
document.getElementById('result').innerHTML = maxNum;
}
</script>
<body>
<p>Numbers Exercise</p>
<p id="numbers"></p>
<input type="button" value="Start" onClick = "numbers();">
<label id='result' />
</body>
</html>