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

JS数学函数简化后返回NaN求助:输入数字仍异常

问题原因及解决方法

问题根源

你写的subsFrom、multiBy函数都要求传入三个独立的数字参数,但调用时直接把整个input数组传了进去。比如subsFrom(input),函数会把数组当作第一个参数num1,剩下的num2、num3都是undefined,数字和undefined做运算自然会得到NaN。

divBy函数要求第一个参数是总和,后面跟三个数字,结果你传了findSum和input数组,后面三个参数实际是undefined,同样导致除法运算出NaN。

修复后的代码

// the purpose of this script is to execute different functions on an array of 3 integers// 
const input = [6, 25, 11];
const findSum = input.reduce((acc, num) => acc + num, 0);
console.log(findSum);

// each function has been assigned parameters to execute //
const subsFrom = (num1, num2, num3) => num1 - num2 - num3;
// 使用展开运算符...把数组拆成单个参数
const subNum = subsFrom(...input);
console.log(subNum);
// then call the function and display the answer //

const multiBy = (num1, num2, num3) => num1 * num2 * num3;
const multiNum = multiBy(...input)
console.log(multiNum);

const divBy = (total, num1, num2, num3) => total / num1 / num2 / num3;
// 同样用展开运算符拆分input数组
const divNum = divBy(findSum, ...input);
console.log(divNum);

关键说明

  • 用...input(展开运算符)可以把数组[6,25,11]拆成三个独立的参数:6,25,11,这样函数就能拿到正确的数字进行运算。
  • 修复后运行,subNum会得到6-25-11 = -30,multiNum是6*25*11=1650,divNum是42/(6*25*11)=42/1650≈0.02545。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 14:46:18