如何解决NaN错误-参数值不加,减,除或乘-在JavaScript中

时间:2019-04-06 20:42:58

标签: javascript math arguments

我最终试图在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吗?

谢谢。

2 个答案:

答案 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));