我創建了一個Chrome擴展,可以繪製用戶輸入的數學公式的圖形。爲了輕鬆獲得y
的價值,我使用了eval()
(是的,我知道這是不好的),因爲實現它的最簡單的方法。不使用eval畫圖()
var equ = $("#equ1").val(); //some element
//let's say equ = "2(2^x) + 3x"
//some magic code
//equ becomes "2*(pow(2,x))+3*x"
for(var x = -10; x < 10; x++){
var y = eval(equ.replace(/x/ig, x)); //calculate y value
drawPoint(x, y);
}
console.log("Graphing done.");
但是,由於new manifest version 2的,我不能使用eval
了。我想不出任何方法來操縱字符串。任何想法?
一個瘋狂的想法是將[解析它(http://stackoverflow.com/questions/2932016/parsing-of-mathematical-expressions)... – Passerby 2013-03-28 08:29:27
所以EVAL消失了,但是生成一個函數呢?我猜是這樣嗎? – MaxArt 2013-03-28 08:34:33
工作在@Passerby這個瘋狂的想法,我打了一個粗劣的黑客:http://jsfiddle.net/FfC3t/。它對你有幫助嗎? – Rikonator 2013-03-28 14:47:49