首页 > 解决方案 > 如何修复 NaN 错误 - 参数值不加、减、除或乘 - 在 JavaScript 中

问题描述

我最终试图在 CodeWars 上解决这个 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

谢谢你。

标签: javascriptmatharguments

解决方案


当前代码中的问题是您的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));


推荐阅读