[英]Finding Largest Element in an Array using JavaScript
我正在尝试编写一个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>
你只是错过了Function.prototype.apply
的预期thisArg
。
MDN描述的语法是
fun.apply(thisArg [,argsArray])
如这个简单的例子所示
Math.max.apply (null,[5,4,3,7,9,]) //9
^^^^
为简单起见,在示例中使用null
,因为Math不期望特定的上下文
您要做的是将数组number
传递给Math.max
,然后将其作为thisArg
(尽管您似乎将其与Array
thisArg
) ,这将导致Math.max
中的任一方式被调用零参数,这会产生根据§15.8.2.11
给定零个或多个参数,在每个参数上调用ToNumber并返回最大的结果值。
- 如果没有给出参数,则结果为-∞。
几个问题,
试试这个:
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>");
<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>
您的代码的主要问题是:
Math.max.apply
函数调用中的this
参数 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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.