我有两个几乎相同的功能。它们之间的唯一区别是一个 has+
和一个 has -
。这些在每个函数中使用了大约 20 次,所以我很想用一个 var 来简化它。
我对 JavaScript 还是很陌生,所以我不知道从哪里开始,但是类似:
if ( blah blah ){
var symbol = '-';
} else{
var symbol = '+';
}
var example = value1 [symbol] value2;
谢谢
我有两个几乎相同的功能。它们之间的唯一区别是一个 has+
和一个 has -
。这些在每个函数中使用了大约 20 次,所以我很想用一个 var 来简化它。
我对 JavaScript 还是很陌生,所以我不知道从哪里开始,但是类似:
if ( blah blah ){
var symbol = '-';
} else{
var symbol = '+';
}
var example = value1 [symbol] value2;
谢谢
用这个:
var modifier = (blah blah) ? 1 : -1;
var example = value1 + (modifier * value2);
您可以定义一个包含函数的对象,由操作员键入。像这样的东西:
var operations = {
'+': function(a, b) { return a + b; },
'-': function(a, b) { return a - b; }
}
var x = operations[condition ? '+' : '-'](value1, value2);
我认为@darthmaim 有最好的方法,但这取决于您是否需要使用其他运算符,例如*
,/
或%
.
为什么不这样:
if ( blah blah ){
var example = value1 - value2;
} else{
var example = value1 + value2;
}
好吧,你可以使用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);
var math = {
'+' : function(x,y) {return x + y;},
'-' : function(x,y) {return x - y;}
}
var usePlus = true;
math[usePlus ? '+' : '-'](1,2) // returns 3