我有两个几乎完全相同的功能。它们之间的唯一区别是一个有+
而另一个有-
。这些在每个函数中使用了大约20次,所以我想用var。
我仍然是JavaScript的新手,所以我不知道从哪里开始,但是像:
if ( blah blah ){
var symbol = '-';
} else{
var symbol = '+';
}
var example = value1 [symbol] value2;
由于
答案 0 :(得分:19)
使用此:
var modifier = (blah blah) ? 1 : -1;
var example = value1 + (modifier * value2);
答案 1 :(得分:4)
您可以定义一个包含函数的对象,由运算符键入。像这样:
var operations = {
'+': function(a, b) { return a + b; },
'-': function(a, b) { return a - b; }
}
var x = operations[condition ? '+' : '-'](value1, value2);
我认为@darthmaim有最好的方法,但这取决于你是否需要使用其他运算符,例如*
,/
或%
。
答案 2 :(得分:2)
为什么不这样:
if ( blah blah ){
var example = value1 - value2;
} else{
var example = value1 + value2;
}
答案 3 :(得分:1)
好吧,你可以使用eval
,但我会使用这样的函数:
var op;
if (condition) {
op = function(a, b) { return a - b; };
} else {
op = function(a, b) { return a + b; };
}
var example = op(value1, value2);
答案 4 :(得分:0)
var math = {
'+' : function(x,y) {return x + y;},
'-' : function(x,y) {return x - y;}
}
var usePlus = true;
math[usePlus ? '+' : '-'](1,2) // returns 3