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);