[英]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.