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

标签 javascript function math

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

计算('+', 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));

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

最佳答案

在每个函数中,您都有一个 arguments object请参阅其余、默认和解构参数部分,如下所示:

The arguments object can be used in conjunction with rest, default, and destructured parameters.

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

一旦你有了计算所需的所有参数,只需使用 Array.prototype.reduce() 。正如文档所述:

The reduce() method executes a reducer function (that you provide) on each element of the array, resulting in a single output value.

我想你可以使用如下:

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);

希望对您有所帮助!

关于javascript - 如何创建一个接受多个参数的函数来在 JavaScript 中执行算术计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59601218/

相关文章:

python - Numpy python 对不同索引的向量求和

javascript - 为什么有时无法在 IE 中输入 <input>?

c++ - 将对象的动态数组传递给函数

java - 使用预定义的递归创建基本数学运算

java - 如何以恒定速度沿着正弦函数移动

c - 以下两种不同的将变量传递到函数的方法之间的区别

mysql - 基于其他列的 SUM(DISTINCT)

javascript - 类型错误 : scrollIntoView is not a function

javascript - 捕获 Django 模型类的多行表示形式中的字段名称

javascript - 如何选择所有输入并按 id 或 class 选择单个或多个 div 内的元素