if/else 定义函数中的正负

if/else defines plus or minus in function

本文关键字:函数 else 定义 if      更新时间:2023-09-26

我有两个几乎相同的函数。它们之间的唯一区别是一个有+,一个有-。这些在每个函数中使用了大约 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