是否有一些功能可以创建没有eval的简单计算器

时间:2019-05-25 21:06:03

标签: javascript

我是JavaScript的新手,我正在尝试创建一个具有单独的操作功能的简单计算器 sumsubtraction函数的示例

fonction calculator() {
  this.addition = function(param1, param2) {
    .........
  }
  this.subtraction = function(param1, param2) {
    .........
  }
}

,并且像这样用于划分,而无需使用评估函数

我做了很多尝试,没有任何结果 我的代码: https://codepen.io/anon/pen/oRderx

1 个答案:

答案 0 :(得分:1)

将显示逻辑与操作逻辑分开。

一个非常简单的例子:

const input = '22*7';
const operands = input.split('*');
const result = operands[0] * operands[1];
console.log(result);

因为您有一个要定义的接口,所以建议不要拆分字符串,而是让您的输入创建一个'operands'和'operators'数组,然后可以从中构建一个字符串,结果很容易用于计算结果的消耗品,例如

简单示例:`[22,'x',15,'*',2];

然后可以使用.join('')

轻松显示输出字符串。

const view = [55, '+', 22, '*', 2].join('');
console.log(view);

这里的挑战很可能是确定操作顺序。递归解决方案可能对此有用。