В конечном итоге я пытаюсь решить это ката на CodeWars.
Начнем с того, что я просто пытаюсь получить «оценку» скорости человека.
function shark(pontoonDistance, sharkDistance, youSpeed, sharkSpeed, dolphin) {
let yourRate = pontoonDistance / youSpeed;
return yourRate;
}
console.info(shark((12, 50, 4, 8, true)));
Но это возвращается NaN
. Это не имеет никакого смысла. Этот аналогичный код вернет 2
:
function divide(firstValue, secondValue) {
let newValue = secondValue / firstValue;
return newValue;
}
console.info(divide(3, 6));
Что такого в этой ситуации, что бы первый вернулся NaN
?
Я планирую сравнить с другой переменной, sharkRate
(sharkDistance / sharkSpeed)
. Если yourRate больше, чем sharkRate, человек будет плыть в безопасное место.
Но для начала я просто пытаюсь понять, почему yourRate
возвращается NaN
?
Спасибо.
@JackBashford извините, я добавил console.info
, который я использовал.
Посмотрев на свой собственный код, я заметил, что в console.info слишком много скобок.
Проблема в вашем текущем коде заключается в том, что внутри вашего вызова shark
есть лишняя пара скобок. Это приводило к тому, что ваш код пытался разделить (12, 50, 4, 8, true)
на undefined
(потому что это был единственный переданный аргумент, а youSpeed
не существовало. Их удаление решит вашу проблему:
function shark(pontoonDistance, sharkDistance, youSpeed, sharkSpeed, dolphin) {
let yourRate = pontoonDistance / youSpeed;
return yourRate;
}
console.info(shark(12, 50, 4, 8, true));
У меня было слишком много скобок в моем console.info
.
Я изменился console.info(shark((12, 50, 4, 8, true)));
в console.info(shark(12, 50, 4, 8, true));
Как вы звоните
shark
и с какими аргументами? Какие аргументы возвращаютNaN
?