我想编写一个对提供的所有参数执行算术运算的函数。例如,如果我这样做:
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)
这不起作用,所以我什至无法前进。
在每个函数中,您都有一个参数对象,请参阅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)
我希望这有帮助!
| 归档时间: |
|
| 查看次数: |
73 次 |
| 最近记录: |