Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 一直在找NaN,然后就迷路了_Javascript_Arrays_Variables_Nan - Fatal编程技术网

Javascript 一直在找NaN,然后就迷路了

Javascript 一直在找NaN,然后就迷路了,javascript,arrays,variables,nan,Javascript,Arrays,Variables,Nan,我正在定义一个函数,它以三个数字作为参数,并返回其中最大的一个 这是我的密码: var instructions = alert("Choose a set of numbers to input for the computer to determine which value is the largest"); var inputOne = prompt("Please input your first desired value"); var inputTwo = prompt("Ple

我正在定义一个函数,它以三个数字作为参数,并返回其中最大的一个

这是我的密码:

var instructions = alert("Choose a set of numbers to input for the computer to determine which value is the largest");

var inputOne = prompt("Please input your first desired value");
var inputTwo = prompt("Please input your second desired value");

// THIS ARRAY STORES THE VALUES OF inputOne && inputTwo
var maxInput = Math.max([inputOne, inputTwo]);

var inputThree = prompt("Please input your third desired value");

// THIS WILL COMPARE BETWEEN THE inputThree && THE MAX INPUT OF THE USERS FIRST TWO CHOICES
var maxNumber = Math.max(maxInput, inputThree);


//validate if inputs are numbers and not letters
// isNaN()

    var compare = function (maxNumber, inputThree) {

    if (inputThree === maxNumber) {
        return alert("The result is the same!");

    } else if (inputThree != maxNumber) {
                return alert(maxNumber + " " + "is the larger value!");

    }
}
compare(maxNumber, inputThree); 
现在我得到了“NaN是更大的值”的结果,这让我发疯了!我试着运行console.log来查看我得到的结果,但根本不起作用。所做的只是将NaN记录到控制台

我还尝试从Math.max()中删除参数,但得到的结果是: “-无穷大是较大的值!”

至少有人能告诉我为什么会发生这种事吗?或者进一步向我解释发生了什么

Math.max([inputOne,inputwo])
应该是
Math.max(inputOne,inputwo)

你为什么不直接用它来买最大的呢

var maxNumber = Math.Max(inputOne, inputTwo, inputThree);
在这里:

InputThere是一个字符串(即其值的类型为),始终为。在这里:

var maxNumber = Math.max(maxInput, inputThree);
maxNumber始终是一个数字(因为这是返回的值,即使参数是字符串)。因此:

始终为false,因为数字永远不等于字符串(请参阅)。因此,要么将inputThree转换为一个数字,例如

+inputThree === maxNumber
或者使用
==

inputThree == maxNumber

Math.max()
不将数组作为参数。将
Math.max([1,2])
Math.max(1,2)
进行比较。另外,在
中,如果
比较功能中使用
==而不是
=强制使用数值哇,当然,我以前也试过这么做,但我不知道我在做什么。现在我看了一下,这一切都是有道理的。我肯定是把事情弄得比需要的复杂,你能告诉我我是新来的吗?哈哈,无论如何,非常感谢你,巴玛!!
+inputThree === maxNumber
inputThree == maxNumber