运算符存储在字符串中时的数学运算

时间:2011-03-10 14:39:17

标签: javascript

两个变量都包含整数:

var input;
var value;

需要对它们执行算术运算,但是将运算符存储在变量中:

var operator;

我如何进行数学计算?
即document.write(输入运算符值);

谢谢

5 个答案:

答案 0 :(得分:5)

switch (operator) {
  case '+': result = input + value; break;
  case '-': result = input - value; break;

}

答案 1 :(得分:2)

对于通用运算符,您可以像这样定义运算符:

var operators = {
    "+": function(a, b) { return a + b; },
    "x": function(a, b) { /* return cross product of a, b */ }
    /* etc */
};

var operator = '+';

var c = operators[operator](1, 2);  // c=3

通过这种方式,可以在运行时扩展operator对象(如果您愿意,也可以由用户扩展)。

答案 2 :(得分:0)

安全免责声明:这是非常不安全的,需要在执行之前验证输入。您应该将上述答案之一用于您的用例,这仅供您参考。

仍然有效:

eval("2" + op + "2")

完整示例here

答案 3 :(得分:0)

我认为这是从用户那里获取值或运算符的好方法。您可以对值执行任何操作。因为这样更灵活,更易于使用。

var a = 10, b = 20, op = '+',
 ans = eval(`${a} ${op} ${b}`);
console.log(ans);

答案 4 :(得分:-1)

是的,您可以使用 eval() 函数制作整个计算器