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

如何将JavaScript中多组相似乘除计算式合并为单个通用公式

正确公式推导

你之前的写法错误根源是混淆了「逐对相乘再相加」和「分别求和再相乘」的逻辑,二者在数学上并不等价,只有当所有变量值完全一致时才会得到相同结果,所以无法得到正确值。

原拆分计算的逻辑可以提取公因子1/60,简化为以下单公式:

var finalValue = (a*a1 + b*b1 + c*c1 + d*d1 + e*e1) / 60

代入你的示例数值计算:(10*10 + 1*1 + 1*10 + 15.5*15 +5*5)/60 = 368.5/60 ≈ 6.14,和你拆分计算的结果一致(你示例标注的6.154为四舍五入误差)。


更通用的无硬编码实现

如果需要适配任意数量的对应变量,不需要固定写死5组变量名,可以用数组+reduce实现:

// 第一组数值数组,可任意增减元素
const arr1 = [a, b, c, d, e]
// 对应第二组数值数组,元素数量和arr1保持一致即可
const arr2 = [a1, b1, c1, d1, e1]
// 逐对相乘累加后除以60,无需随元素数量调整公式
const finalValue = arr1.reduce((sum, val, index) => sum + val * arr2[index], 0) / 60

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 06:24:05