You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检查并修复NaN值?实现计算结果为NaN时返回0的方法

解决NaN问题的检查与修复方案

首先明确findAvareageOfWpm出现NaN的常见原因:

  • wordsPerMinute或numberTrains不是有效数字(比如是字符串、undefined、null)
  • numberTrains和wordsPerMinute同时为0(0/0会得到NaN)

方法一:计算后精准判断替换

用Number.isNaN()直接检查计算结果,是NaN就替换为0,代码示例:

let findAvareageOfWpm = Math.floor(wordsPerMinute / numberTrains);
// 精准判断是否为NaN,是则赋值为0
if (Number.isNaN(findAvareageOfWpm)) {
  findAvareageOfWpm = 0;
}
// 输出到屏幕
console.log(findAvareageOfWpm);

注意:别用全局isNaN(),它会把非数字类型先转成数字(比如isNaN('abc')返回true),Number.isNaN()只会判断真正的NaN值,更精准。

方法二:计算前提前校验变量有效性

提前确保两个变量是合法数字,从根源避免NaN出现:

// 把wordsPerMinute转为有效数字,无效则设为0
const validWpm = typeof wordsPerMinute === 'number' && !Number.isNaN(wordsPerMinute) ? wordsPerMinute : 0;
// 把numberTrains转为有效数字,无效或为0则设为1(避免除以0)
const validTrains = typeof numberTrains === 'number' && !Number.isNaN(numberTrains) && numberTrains !== 0 ? numberTrains : 1;

let findAvareageOfWpm = Math.floor(validWpm / validTrains);
console.log(findAvareageOfWpm);

方法三:用空值合并运算符快速处理

利用??运算符实现简洁替换,仅当值为null/undefined/NaN时替换为0:

let findAvareageOfWpm = Math.floor(wordsPerMinute / numberTrains);
// 空值合并,仅替换NaN、null、undefined
findAvareageOfWpm = findAvareageOfWpm ?? 0;
console.log(findAvareageOfWpm);

内容的提问来源于stack exchange,提问作者Proger228

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 04:05:21