接收输入数字,直到用户输入零。然后输出最高。 JavaScript的

时间:2016-04-02 01:40:47

标签: javascript arrays

正如标题所示,我必须编写一个用户输入数字的程序,当输入的数字为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>

2 个答案:

答案 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>