2013-06-06 28 views
0

我知道我可以简单地使用if else语句来为我完成数学运算,甚至可以根据需要创建可以被调用的函数,但是我试图基于数学存储+或者 - 作为一个变量,以便它可以执行为算术操作数分配一个变量?

例如

plusOrMinus = + 

5 + plusOrMinus + 5 = 10 
+0

以及肯定的,你可以使用'的eval() '但它相当危险。 –

+0

@Mahan我很想看看'eval()'的例子,并听说为什么它是“危险的”的推理 – Ian

+0

我听说有人说eval()是危险的,但我知道人们可以用现代浏览器内联编辑javascript;什么都没有,除了有人在他们特定的浏览器中注入某些东西外,我没有看到它的危险。 –

回答

3

我不确定你处于什么样的状况,但不会乘以1或-1就足够了吗?

plusOrMinus = 1 
5 + (plusOrminus * 5) = 10 

plusOrMinus = -1 
5 + (plusOrminus * 5) = 0 
+1

在我看来,'5 - 5 = 0',而不是'-10'。 – RobG

2

没有,但有可能创建一个包装给定的运营商(S)的函数:

function add(a, b) { return a + b }; 
function sub(a, b) { return a - b }; 

var op = add; // look, functions are just objects! 
op(5, 5) // -> 10 
var op = sub; 
op(7, 3) // -> 4 

嘛,怎么这对我们有帮助吗?只需展开它!

function fold (arr, fn) { 
    var r = arr[0]; 
    for (var i = 1; i < arr.length - 1; i++) { 
     r = fn(r, arr[i]); 
    } 
    return r; 
} 
fold([1,2,3], add) // -> 6 
1

可以存储1或-1,繁衍,像这样:

var plusOrMinus; 
var Result; 

plusOrMinus = 1; 

Result = (5 + 5) * plusOrMinus; // 10 

plusOrMinus = -1; 

Result = (5 + 5) * plusOrMinus; // -10 
1

你可能需要的eval()

plusOrMinus = '+' 

eval(5+plusorMinus+5); 
相关问题