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

JavaScript四则运算函数调用后如何获取累计结果而非单独结果

修改方案

要实现同一运算多次调用后返回累计总和,直接调整resualtValues函数的逻辑即可,以下是修改后的完整代码:

const calculator = {
    sum: [],
    subtraction: [],
    multiplication: [],
    division: [],

    sumValues: function (num1, num2) {
      this.sum.push({
        num1: num1,
        num2: num2,
      });
    },
    subtractionValues: function (num1, num2) {
      this.subtraction.push({
        num1: num1,
        num2: num2,
      });
    },
    multiplyValues: function (num1, num2) {
      this.multiplication.push({
        num1: num1,
        num2: num2,
      });
    },
    divisionValues: function (num1, num2) {
      this.division.push({
        num1: num1,
        num2: num2,
      });
    },
    resualtValues: function () {
      let result = {
        sum: 0,
        sub: 0,
        mul: 0,
        div: 0,
      };
      // 累加求和
      this.sum.forEach(function (item) {
        result.sum += item.num1 + item.num2;
      });
      // 累加求差的总和
      this.subtraction.forEach(function (item) {
        result.sub += item.num1 - item.num2;
      });
      // 累加求积的总和
      this.multiplication.forEach(function (item) {
        result.mul += item.num1 * item.num2;
      });
      // 累加求商的总和
      this.division.forEach(function (item) {
        result.div += item.num1 / item.num2;
      });
      return result
    },
  };

calculator.sumValues(25, 4);
calculator.sumValues(45, 4);
calculator.subtractionValues(20, 5);
calculator.multiplyValues(5, 6);
calculator.divisionValues(45, 5);
console.log(calculator.resualtValues());
// 输出:{ sum: 78, sub: 15, mul: 30, div: 9 }

关键改动说明

  • 把result对象中各运算字段的初始值从空数组改为0,用于存储累计总和
  • 遍历运算记录时,不再将单次结果推入数组,而是直接累加到对应字段上
  • 最终返回的就是各运算类型多次调用后的累计总结果,比如两次求和的结果29+49=78会直接作为sum字段的值返回

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:15:15