如何创建一个接受多个参数的函数以在 JavaScript 中执行算术计算?

0 javascript math function

我想编写一个对提供的所有参数执行算术运算的函数。例如,如果我这样做:

calculate('+', 3, 5, 6)

它应该返回 14(即 3+5+6)

或者如果我这样做

calculate('*', 6,3,6,8,)

它应该返回 864(相当于将所有这些数字相乘)。

该函数本质上应该能够处理我提供给它的任何数量的数字,同时还能够处理主要的算术运算符,例如 + - /*

我是编程新手。我试过了:

function mCalc(_operator){
  if(_operator=='+'){
    return arguments + arguments;
  }

}
console.log(mCalc('+',5,5));
Run Code Online (Sandbox Code Playgroud)

这不起作用,所以我什至无法前进。

nor*_*ial 5

在每个函数中,您都有一个参数对象,请参阅Rest、default 和 destructured parameters部分,因为它指出:

arguments 对象可以与 rest、default 和 destructured 参数结合使用。

function foo(...args) { return args; }

一旦您拥有计算所需的所有参数,只需使用Array.prototype.reduce(). 正如文件所述:

reduce() 方法在数组的每个元素上执行一个 reducer 函数(您提供的),从而产生单个输出值。

我想你可以使用如下:

const mCalc = (_operator, ...args) => {
  if(_operator === '+') {
      return args.reduce((a, c) => a + c, 0);
  }

  // rest what you want to implement
}

const result = mCalc('+', 3, 5, 6, 2);

console.log(result);
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助!