我最终试图在CodeWars上解决this kata。
首先,我只是试图获得人的速度的“速率”。
function shark(pontoonDistance, sharkDistance, youSpeed, sharkSpeed, dolphin) {
let yourRate = pontoonDistance / youSpeed;
return yourRate;
}
console.log(shark((12, 50, 4, 8, true)));
但这是回归NaN
。这没有任何意义。这个类似的代码将返回2
:
function divide(firstValue, secondValue) {
let newValue = secondValue / firstValue;
return newValue;
}
console.log(divide(3, 6));
这些情况有什么不同,会导致第一次返回NaN
?
我计划与另一个变量sharkRate
(sharkDistance / sharkSpeed)
进行比较。如果你的速度大于sharkRate,那么这个人会游到安全的地方。
但首先,我只是想弄清楚为什么yourRate
正在回归NaN
?
谢谢。
您当前代码中的问题是您在shark
调用中有一对额外的括号。这导致你的代码试图通过(12, 50, 4, 8, true)
划分undefined
(因为这是唯一传递的参数,并且youSpeed
不存在。删除这些将解决你的问题:
function shark(pontoonDistance, sharkDistance, youSpeed, sharkSpeed, dolphin) {
let yourRate = pontoonDistance / youSpeed;
return yourRate;
}
console.log(shark(12, 50, 4, 8, true));
我的console.log
中有太多括号。
我改变了console.log(shark((12, 50, 4, 8, true)));
到console.log(shark(12, 50, 4, 8, true));