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
相关产品推荐
相关产品推荐

