我正在尝试编写一个javascript程序,它将显示用户输入的10个数字中最大的一个。这是我到目前为止所做的,但是没有用。
<html>
<head></head>
<body>
<script type="text/javascript">
var counter=1;
var number= new Array;
number.length=9;
var largest=0;
while (counter <= 10) {
number=window.prompt("Enter Numbers 1-10 Number:"+counter+".");
number[counter]= parseInt(number);
counter++;
}
largest=Math.max.apply(Array);
document.writeln("<h1>Largest number is " +largest+ "</h1>");
</script>
</body>
</html>
答案 0 :(得分:2)
您只是错过了Function.prototype.apply
的预期thisArg
。
MDN描述的Syntax是
fun.apply(thisArg [,argsArray])
如这个简单的例子所示
Math.max.apply (null,[5,4,3,7,9,]) //9
^^^^
其中null
在示例中用于简单,因为Math不期望特定的上下文
你要做的是将数组number
传递给Math.max
,然后就是thisArg
(尽管你似乎把它弄错了{{1} }})这将导致{{1>}中的以任何方式被零参数调用,根据§15.8.2.11
给定零个或多个参数,在每个参数上调用ToNumber并返回 最大的结果值。
- 如果没有给出参数,则结果为-∞。
答案 1 :(得分:1)
答案 2 :(得分:1)
几个问题,
试试这个:
var counter=0;
var number= new Array;
number.length=9;
var newnumber;
var largest=0;
while (counter <= 10)
{
newnumber=window.prompt("Enter Numbers 1-10 Number:"+counter+".");
number[counter]= parseInt(newnumber);
counter++;
}
largest=Math.max.apply(Math, number);
document.writeln("<h1>Largest number is " +largest+ "</h1>");
答案 3 :(得分:0)
<html>
<head>
</head>
<body>
<script type="text/javascript">
var counter=1;
var number= [];
var largest=0;
while (counter <= 10){
number.push(Number(window.prompt("Enter Numbers 1-10 Number:"+counter+"."),10));
counter++;
}
Array.prototype.max = function () {
return Math.max.apply(Math, this);
};
largest = number.max();
document.writeln("<h1>Largest number is " +largest+ "</h1>");
</script>
</body>
</html>
答案 4 :(得分:0)
您的代码存在的主要问题是:
this
函数调用Math.max.apply
参数
number
数组。您需要为用户输入单独的变量。但是,您根本不需要为此任务构建数组。在循环内部,只需将largest
与用户提供的数字进行比较,并在适当时更新largest
:
</head>
<body>
<script type="text/javascript">
var counter;
var number;
var largest=Number.NEGATIVE_INFINITY;
for (counter = 1; counter <= 10; counter++)
{
number = window.prompt("Enter Numbers 1-10 Number:"+counter+".");
number = parseInt(number);
if (number > largest) {
largest = number;
}
}
document.writeln("<h1>Largest number is " +largest+ "</h1>");
</script>
</body>
</html>