我知道我可以简单地使用 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
不,但可以创建一个包装给定运算符的函数:
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);