javascript用户输入最多的20个数字

时间:2016-03-30 16:52:05

标签: javascript arrays display

对于这个程序,我需要用户输入20个数字并显示最高数字。我用4做了类似的,我将在下面显示,但是必须有一个更简单的方法来完成这一切吗?任何建议都会很棒。

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">

function maxNum(num1, num2, num3, num4){
        var max = 0;
        if((num1 >= num2) && (num1 >= num3)){
            max = num1;
        }
        else if((num2 >= num1) && (num2 >= num3) && (num3 >= num4)){
            max = num2;
        }

        else if((num3 >= num1) && (num3 >= num2) && (num3 >= num4)){
            max = num3;
        }

        else{
            max = num4;
        }
    return max;
    }

    var arr = []; 
    for(i=0;i<4;i++){
        arr[i] = parseInt(prompt("Enter a number"));
    }


    document.write(maxNum.apply(this, arr));





</script>
</body>
</html>

3 个答案:

答案 0 :(得分:0)

是的,Math.max.apply。它需要一个对象(null)和一个带有值的数组。

function getMax(array) {
    var i,
        max = +array[0]; // the first element with implicit casting to number

   for (i = 1; i < array.length; i++) { // loop throu all elements
       if (+array[i] > max) { // with cast to number
           max = array[i];
       }
   }
   return max;
}

var userInput = ['1', 'a', '4', '-', '1000', '20'].filter(Number);
document.write(userInput + '<br>');
document.write(Math.max.apply(null, userInput) + '<br>');
document.write(getMax(userInput) + '<br>');

答案 1 :(得分:0)

function findMaxNum(arr) {
  return Math.max.apply(null, arr);
}

var arr = []; 

for (var i = 0; i < 4; i++) {
  arr[i] = parseInt(prompt('Enter a number'), 10);
}

var maxNum = findMaxNum(arr);

Math.max通常适用于一系列数字:Math.max(1, 4, 10) // 10,但在这里我们在函数上使用apply,以便它接受一个数组。

(注意,添加了parseInt)的基数

DEMO

答案 2 :(得分:0)

假设传入您的函数的所有值都是数字,您可以将Math.maxarguments特殊变量一起使用。

function getMax()
{
    if (Object.prototype.toString.call(arguments[0]) === '[object Array]') {
        return Math.max.apply(null, arguments[0]);
    }
    return Math.max.apply(null, arguments);
}

var myArr = [2,4,6,8,10,12,14,16,18,20];

getMax(1,2,4,5,6,7,8,10); // 10
getMax(myArr); // 20

上面的示例允许传递数组或参数列表。这允许您在需要时重用。