我知道我可以简单地使用if else语句来为我完成数学运算,甚至可以根据需要创建可以被调用的函数,但是我试图基于数学存储+或者 - 作为一个变量,以便它可以执行为算术操作数分配一个变量?
例如
plusOrMinus = +
5 + plusOrMinus + 5 = 10
我知道我可以简单地使用if else语句来为我完成数学运算,甚至可以根据需要创建可以被调用的函数,但是我试图基于数学存储+或者 - 作为一个变量,以便它可以执行为算术操作数分配一个变量?
例如
plusOrMinus = +
5 + plusOrMinus + 5 = 10
我不确定你处于什么样的状况,但不会乘以1或-1就足够了吗?
plusOrMinus = 1
5 + (plusOrminus * 5) = 10
plusOrMinus = -1
5 + (plusOrminus * 5) = 0
在我看来,'5 - 5 = 0',而不是'-10'。 – RobG
没有,但有可能创建一个包装给定的运营商(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,繁衍,像这样:
var plusOrMinus;
var Result;
plusOrMinus = 1;
Result = (5 + 5) * plusOrMinus; // 10
plusOrMinus = -1;
Result = (5 + 5) * plusOrMinus; // -10
你可能需要的eval()
plusOrMinus = '+'
eval(5+plusorMinus+5);
以及肯定的,你可以使用'的eval() '但它相当危险。 –
@Mahan我很想看看'eval()'的例子,并听说为什么它是“危险的”的推理 – Ian
我听说有人说eval()是危险的,但我知道人们可以用现代浏览器内联编辑javascript;什么都没有,除了有人在他们特定的浏览器中注入某些东西外,我没有看到它的危险。 –