根据公式和对象作为参数进行计算

时间:2018-11-08 18:40:14

标签: javascript

我创建了getResult函数来根据公式进行计算。有什么方法可以执行此计算 如果您有任何解决方案,请告诉我。

预先感谢

let formula = "a*b";
let parameters = {a:3,b:4}
let getResult = function(formula, parameters){ 

}

2 个答案:

答案 0 :(得分:1)

一个不依赖eval的简单计算器:

let formula = "a*b";
let parameters = {a:3,b:4}

function getResult(formula, parameters){ 
  const operator  = formula.match(/[+-\/*]{1}/)[0];
  const {a, b} = parameters;
  switch(operator) {
    case '+': return a + b;
    case '-': return a - b;
    case '*': return a * b;
    case '/': return a / b;
  }
}

const result = getResult(formula, parameters);
console.log(result);

答案 1 :(得分:0)

尝试一下。尽管“ eval”是可以避免的。

let formula = "a*b";
let parameters = {a:3,b:4}
let getResult = function(formula, parameters){ 
  let cal = [...formula].map(d => parameters[d] || d).join('')

  return eval(cal)
}

console.log(getResult(formula, parameters))