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

javascript user input highest of 20 numbers

本文关键字:20个 数字 用户 输入 javascript      更新时间:2023-10-15

对于这个程序,我需要用户输入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>
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的基数)

演示

假设传递到函数中的所有值都是数字,则可以将Math.max与参数特殊变量一起使用。

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

上面的示例允许传递一个数组或参数列表。这允许您在需要的地方重复使用。

是,带有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>');