Я определяю функцию, которая принимает в качестве аргументов три числа и возвращает наибольшее из них.
Вот мой код:
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, но это вообще не сработало. Все, что я сделал, это вывел NaN на консоль.
Я также пытался взять параметры из Math.max(), но только что получил: "-infinity - большее значение!"
Может кто-нибудь хотя бы подсказать, почему это происходит? Или объясните мне дальше, что происходит.
Math.max()
не принимает массив в качестве аргумента. СравнитеMath.max([1, 2])
сMath.max(1, 2)
. - person univerio   schedule 13.06.2014else if
в функцииcompare
используйте!==
вместо!=
, чтобы принудительно использовать числовые значения. - person Roberto Linares   schedule 13.06.2014