不能从函数返回方程

时间:2015-05-22 16:54:22

标签: javascript function

我想用javascript计算导数和积分,但是当我尝试返回使用输入的等式时。什么都没有显示或得到非真实答案。

HTML

Equation<br>
<input type="text" name="equation" id="equation" class="form"><br>
Point<br>
<input type="text" name="point" id="point" class="form"><br>
<p id="submit" onclick="submit()" name="solve">click</p><br>

的JavaScript

function submit() {
    var equation = +document.getElementById("equation").value;
    var point = +document.getElementById("point").value;

    //console.log(point);
    var d = .0001;
    var a = (point +a)*a;

    var startPoint;

    function integral(f) {
        for(startPoint= 0; startPoint < point; startPoint+=d){
            intAnswer +=(f(startPoint+d)+f(startPoint-d))*(d)*(1/2);
        }
        return intAnswer;
    }
    function f(x) {
        return equation;
    }
    function diff(f) {
        return function(x) { 
            return ((f(x+a)-f(x-a))/(2*a));
        };
    }
}

我想输入x*x来获取X^2,但这不起作用。谁知道为什么?

2 个答案:

答案 0 :(得分:2)

您可以尝试从输入创建函数,如下所示:

var f = new Function('x', 'return ' + equation);

这会评估你的字符串。

答案 1 :(得分:1)

你的“等式”只是一个字符串。 您可以使用eval解析它。

f = function(x) {
    //x is your equation
    return eval(x);
}

//Note, user input formula must match the function parameter variable name( x ), if user types x*x then it works, if he types y*y then not.