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

JavaScript箭头函数结合三元运算符返回NaN问题求助

问题原因与解决方案

核心问题

  • 你将nValue声明为了箭头函数类型,并未主动调用该函数传入参数,直接读取nValue拿到的是函数对象而非计算结果,用于数值场景时就会返回NaN
  • 箭头函数内部不需要对参数做重复赋值,三元运算符本身可直接返回结果,多余的赋值操作只会增加逻辑歧义
  • 额外优化建议:可以给三元运算的判断条件包裹括号,提升代码可读性,避免运算符优先级导致的逻辑异常

修复后代码

如果你需要复用计算逻辑,可以单独定义函数后调用:

const nVal = 138
// 定义计算逻辑的箭头函数
const getNumValue = num => (num === 11 || num === 22 || num === 33) ? num : Math.floor(num/100) + Math.floor(num%100/10) + num%10
// 调用函数传入参数拿到最终结果
const nValue = getNumValue(nVal)

如果不需要复用逻辑,可以直接用立即执行函数一次性拿到结果:

const nVal = 138
const nValue = (num => (num === 11 || num === 22 || num === 33) ? num : Math.floor(num/100) + Math.floor(num%100/10) + num%10)(nVal)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 12:57:00