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

JavaScript实现数组内两数相除功能时运算顺序颠倒如何解决

错误原因

你当前的fDividir函数存在两个逻辑错误:

  • 初始值设置错误:除法不满足交换律,不能像乘法一样用1作为初始运算值,需要以拆分得到的第一个数字作为运算基准
  • 运算顺序颠倒:循环中你执行的是「当前遍历到的数字 ÷ 之前的运算结果」,正确逻辑应为「之前的运算结果 ÷ 当前遍历到的数字」

修复后的代码

const fDividir = function (valores = "0"){
    let arregloNum = valores.split("/");
    // 边界校验:除数不能为0
    if (arregloNum.slice(1).some(item => parseInt(item) === 0)) {
        throw new Error("运算错误,不能除以0");
    }
    // 取第一个数字作为初始运算值
    let oDivision = parseInt(arregloNum[0]);
    // 从第二个数字开始依次执行除法
    for (let i = 1; i < arregloNum.length; i++){
        oDivision = oDivision / parseInt(arregloNum[i]);
    }
    return oDivision;
}

如果需要支持小数运算,将代码中的parseInt替换为Number即可。

验证效果

执行console.log(fDividir("10/2"))会返回预期结果5,多参数场景比如fDividir("100/2/5")也会正确返回10。

内容的提问来源于stack exchange,提问作者Adalberto Granja Valencia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 04:15:03