繁体   English   中英

在 JavaScript 中写一个 function 接受三个数字作为 arguments 并显示最大的数字

[英]Write a function in JavaScript which accept three numbers as arguments and display the greatest number

我尝试先制作一个数组,然后从中选择最大值,但 output 始终为NaN

<!DOCTYPE html>
<html>
<body>

<h2>Write a function in JavaScript which accept three numbers as arguments and
 display the greatest number.</h2>



<p id="demo"></p>

<script>


selnum = [num1, num2, num3];

var num1 = prompt("Please wirte any number");
var num2 = prompt ("Please write 2nd number");
var num3 = prompt("Please wirte 3rd number");

document.write(Math.max(selnum));

</script>

</body>
</html>

有多种解决方案。

您可以使用数组或仅使用 var 来完成。

使用数组:


var num1 = prompt("Please write any number");
var num2 = prompt("Please write 2nd number");
var num3 = prompt("Please write 3rd number");

var arr = [num1, num2, num3];

document.write(Math.max(...arr));

随着变种:

var num1 = prompt("Please write any number");
var num2 = prompt("Please write 2nd number");
var num3 = prompt("Please write 3rd number");

document.write(Math.max(num1, num2, num3));

如果你不想你 Math.max 你可以这样做:

var num1 = prompt("Please write any number");
var num2 = prompt("Please write 2nd number");
var num3 = prompt("Please write 3rd number");

var arr = [num1, num2, num3];

var maxi = num1;

for(let i = 1; i < arr.length; i++){
    maxi = (maxi < arr[i] ? arr[i] : maxi);
}

document.write(maxi);

使用 function 它看起来像:

function f(num1, num2, num3){
   return Math.max(num1, num2, num3); // Without array
}

你的selnum = [num1, num2, num3]; 在您实际从用户那里获得数字之前就已经发生了。 您需要将该行放在prompt()行之后。

您可能还需要将值转换为数字,因为prompt()总是返回一个字符串,并且这些值可能不会按照您期望的方式排序。

最后, Math.max不接受数组,它接受无限数量的参数。 所以你需要在这里使用.apply

 var num1 = prompt("Please wirte any number"); var num2 = prompt("Please write 2nd number"); var num3 = prompt("Please wirte 3rd number"); var selnum = [parseInt(num1, 10), parseInt(num2, 10), parseInt(num3, 10)]; console.log(Math.max.apply(Math, selnum));

另外, document.write真的不再使用了。 使用console.log并在浏览器中检查您的开发人员控制台。

发现这是工作的

<script>

var num1 = prompt("Please wirte any number");
var num2 = prompt("Please write 2nd number");
var num3 = prompt("Please wirte 3rd number");




document.write(Math.max(num1, num2, num3));


</script>

Math.max()不将数组作为参数,它要求每个值都是一个单独的参数。

您还必须将输入转换为数字。

 var num1 = +prompt("Please wirte any number"); var num2 = +prompt("Please write 2nd number"); var num3 = +prompt("Please wirte 3rd number"); getMax(num1, num2, num3); function getMax(num1, num2, num3) { console.log(Math.max(num1, num2, num3)); }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM