如何修复NaN错误 - 参数值不添加,减去,除法或乘以 - 在JavaScript中

问题描述 投票:2回答:2

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

谢谢。

javascript math arguments
2个回答
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
投票

我的console.log中有太多括号。

我改变了console.log(shark((12, 50, 4, 8, true)));

console.log(shark(12, 50, 4, 8, true));

© www.soinside.com 2019 - 2024. All rights reserved.