如何将输入公式转化为函数

时间:2022-03-16 19:01:54
我想把在输入框里的公式转换为函数来计算,满足输入已知条件数值和公式便可直接输出结果的功能?
我见有这样的代码
 

String[] functions = function.Split(new char[]{';'});

这是实现的什么功能?

8 个解决方案

#1


就是把字符串function按照;拆分成数组
function是一个字符串,里面会有很多;符号

#2


不明白你的意思 eval?

#3


把公式与函数对应起来。

#4


按 ; 拆分为数组,例如:有1;2;3;4这样一个字符串,使用split后会得到一个存放1234四个元素的数组

#5


引用 3 楼 u011461314 的回复:
把公式与函数对应起来。

求详解?假如从数据库获得字符串“v1=x+y”,使用上面的形式解析可以变成代码形式和函数式吗?

#6


map = {
"v1=x+y":fn1,
"v2=x*x+y*y":fn2
}
function fn1(x,y){
return x+y;
}

str = getFormData();  // str = "v1=x+y";
fn = map[str];
x1 = getFormInputX();  //x1 = 3
x2 = getFormInputY();
fn(x1,x2);

#7


引用 6 楼 u011461314 的回复:
map = {
"v1=x+y":fn1,
"v2=x*x+y*y":fn2
}
function fn1(x,y){
return x+y;
}

str = getFormData();  // str = "v1=x+y";
fn = map[str];
x1 = getFormInputX();  //x1 = 3
x2 = getFormInputY();
fn(x1,x2);

如果字符串是变量呢?在获取之前不知道会是哪个式子,该怎么办

#8


function fn(gvt){
return function (x,y){
var v;
eval(gvt);
return v;
};
}

var f1 = fn("v=x+y");
var f2 = fn("v=x*10+y");

alert(f1(6,4));
alert(f2(6,4));

#1


就是把字符串function按照;拆分成数组
function是一个字符串,里面会有很多;符号

#2


不明白你的意思 eval?

#3


把公式与函数对应起来。

#4


按 ; 拆分为数组,例如:有1;2;3;4这样一个字符串,使用split后会得到一个存放1234四个元素的数组

#5


引用 3 楼 u011461314 的回复:
把公式与函数对应起来。

求详解?假如从数据库获得字符串“v1=x+y”,使用上面的形式解析可以变成代码形式和函数式吗?

#6


map = {
"v1=x+y":fn1,
"v2=x*x+y*y":fn2
}
function fn1(x,y){
return x+y;
}

str = getFormData();  // str = "v1=x+y";
fn = map[str];
x1 = getFormInputX();  //x1 = 3
x2 = getFormInputY();
fn(x1,x2);

#7


引用 6 楼 u011461314 的回复:
map = {
"v1=x+y":fn1,
"v2=x*x+y*y":fn2
}
function fn1(x,y){
return x+y;
}

str = getFormData();  // str = "v1=x+y";
fn = map[str];
x1 = getFormInputX();  //x1 = 3
x2 = getFormInputY();
fn(x1,x2);

如果字符串是变量呢?在获取之前不知道会是哪个式子,该怎么办

#8


function fn(gvt){
return function (x,y){
var v;
eval(gvt);
return v;
};
}

var f1 = fn("v=x+y");
var f2 = fn("v=x*10+y");

alert(f1(6,4));
alert(f2(6,4));