我创建了一个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