我最终试图在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)
进行比较。如果yourRate大于sharkRate,则该人将安全游泳。
但是首先,我只是想弄清楚为什么yourRate
返回NaN
吗?
谢谢。
答案 0 :(得分:2)
当前代码中的问题是您的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));
答案 1 :(得分:1)
console.log
中的括号太多。
我更改了console.log(shark((12, 50, 4, 8, true)));
到console.log(shark(12, 50, 4, 8, true));