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

如何创建一个接受多个参数的函数来在JavaScript中执行算术计算?,javascript,function,math,Javascript,Function,Math,我想写一个函数,对提供的所有参数执行算术运算。例如,如果我这样做: 计算('+',3,5,6) 它应该返回14(即3+5+6) 或者如果我这样做了 计算('*',6,3,6,8,) 它应该返回864(相当于将所有这些数字相乘) 该函数基本上应该能够处理我提供给它的任何数量的数字,同时也能够处理主要的算术运算符,如+-/* 我是编程新手。我试过: function mCalc(_operator){ if(_operator=='+'){ return arguments + argu

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

计算('+',3,5,6)

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

或者如果我这样做了

计算('*',6,3,6,8,)

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

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

我是编程新手。我试过:

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

}
console.log(mCalc('+',5,5));

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

在每个函数中,您都可以看到Rest、default和destructured parameters一节,它指出:

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

函数foo(…args){return args;}

一旦你有了计算所需的所有参数,就可以使用了。文件规定:

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

我想您可以使用以下选项:

const mCalc=(_运算符,…args)=>{
if(_运算符==='+')){
返回参数reduce((a,c)=>a+c,0);
}
//rest是您想要实现的
}
常量结果=mCalc(+',3,5,6,2);

控制台日志(结果)您可以使用一个对象作为运算符,并通过使用一个返回两个操作数的函数来减少值

通过调用函数,运算符被接受,值通过使用被接受到数组中

这种方法使用

const
运算符={
“+”:(a,b)=>a+b,
“*”:(a,b)=>a*b
},
take=op=>运算符[op],
计算=(op,…值)=>值。减少(取(op));
log(计算('+',3,5,6));//14

log(计算('*',6,3,6,8))a+c);}else if(_运算符='-'){return args.reduce((a,c)=>a-c)}else if(_运算符='*'){return args.reduce=>a*c);}else if(_运算符='/'){return args.reduce((a,c)=>a/c);}}}console.log(mCalc('/',20,5));擦亮后我得到了。它工作得很好。很抱歉它的呈现方式。我是斯塔克索弗流的新手
calculate = (op, ...values) => values.reduce(take(op));
^^^^^^^^^                                               name of the function/variable
            ^^^^^^^^^^^^^^^                             parameters
                            ^^                          arrow
                               ^^^^^^^^^^^^^^^^^^^^^^^  return value