做一个加法或乘法,如果参与运算的数字不确定,如何实现函数calculate,能完成calculate(“*”,2,3,4)和calculate("+",2,3,4,5)?请使用ES6中rest参数编写函数calculate
时间: 2024-02-09 10:12:07 浏览: 54
可以使用ES6中的rest参数来实现该函数,代码如下:
```
function calculate(operator, ...numbers) {
let result = 0;
switch (operator) {
case '+':
result = numbers.reduce((acc, cur) => acc + cur);
break;
case '*':
result = numbers.reduce((acc, cur) => acc * cur);
break;
default:
console.log('Unsupported operator!');
}
return result;
}
console.log(calculate('*', 2, 3, 4)); // 24
console.log(calculate('+', 2, 3, 4, 5)); // 14
```
在这个函数中,使用了rest参数`...numbers`来接收任意数量的数字参数,并使用`reduce()`方法来实现加法或乘法运算。函数根据传入的运算符进行判断,如果是加法,就使用`reduce()`方法的加法累加函数,如果是乘法,就使用`reduce()`方法的乘法累积函数。最后将计算结果返回。
相关问题
使用rest参数做一个加法或乘法,如果参与运算的数字个数不确定,实现函数calculate
Sure,以下是使用rest参数实现的calculate函数,可以接受任意数量的参数并进行加法或乘法操作:
function calculate(operation, ...numbers) {
if (operation === '+') {
return numbers.reduce((acc, val) => acc + val, 0);
} else if (operation === '*') {
return numbers.reduce((acc, val) => acc * val, 1);
} else {
return 0;
}
}
您可以进行以下测试:
calculate('+', 1, 2, 3); // 返回6,即1 + 2 + 3的结果
calculate('*', 2, 4, 6); // 返回48,即2 * 4 * 6的结果
使用rest参数做一个加法或乘法实现函数calculate
好的,以下是使用rest参数实现加法或乘法计算的函数calculate的示例代码,请您参考:
```javascript
function calculate(operation, ...args) {
if (operation === 'addition') {
return args.reduce((sum, num) => sum + num, 0);
} else if (operation === 'multiplication') {
return args.reduce((product, num) => product * num, 1);
} else {
return 'Unsupported operation';
}
}
console.log(calculate('addition', 1, 2, 3)); // 输出 6
console.log(calculate('multiplication', 2, 3, 4)); // 输出 24
console.log(calculate('division', 2, 3, 4)); // 输出 Unsupported operation
```
以上代码中,我们定义了一个名为calculate的函数,它接受两个参数:operation和一个rest参数args。operation是一个字符串参数,表示计算的操作类型,可以为'addition'或'multiplication'。args是一个不定数量的参数,表示要计算的数字。
在函数主体中,我们首先判断operation的值,如果为'addition',则使用数组的reduce方法对args数组进行累加运算,如果为'multiplication',则使用reduce方法对args数组进行累乘运算。如果operation的值不在支持的操作类型之列,则返回一个提示信息'sUnsupported operation'。
最后,我们通过在控制台中调用calculate函数,并传入不同的参数来测试函数的功能。