我知道我可以簡單地使用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
在我看來,'5 - 5 = 0',而不是'-10'。 – RobG
沒有,但有可能創建一個包裝給定的運營商(S)的函數:
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);
以及肯定的,你可以使用'的eval() '但它相當危險。 –
@Mahan我很想看看'eval()'的例子,並聽說爲什麼它是「危險的」的推理 – Ian
我聽說有人說eval()是危險的,但我知道人們可以用現代瀏覽器內聯編輯javascript;什麼都沒有,除了有人在他們特定的瀏覽器中注入某些東西外,我沒有看到它的危險。 –