Lo probé haciendo primero una matriz y luego eligiendo el máximo, pero la salida siempre es 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>Hay múltiples soluciones.
Puedes hacerlo con un Array, o solo con var.
Con matriz:
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));Con var:
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));Si no quieres Math.max puedes hacer:
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);Con una función se verá algo como:
function f(num1, num2, num3){ return Math.max(num1, num2, num3); // Without array }Encontré esto como el que funciona.
<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>Su selnum = [num1, num2, num3]; está sucediendo antes de que realmente obtenga los números del usuario. Debe poner esa línea después de las líneas de prompt() .
También es posible que deba convertir los valores en números, ya que prompt() siempre devuelve una cadena y es posible que no se clasifiquen de la forma esperada.
Finalmente, Math.max no acepta una matriz, acepta un número ilimitado de parámetros. Así que necesitas usar .apply aquí.
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)); Además, document.write realmente ya no se usa. Use console.log y verifique su consola de desarrollador en el navegador.