这听起来像是初步的问题,但我无法解决。我不想使用eval()。下面是我的代码
var inputValue = 75;
var functionName = 'Math.Sin';
alert (functionName(inputValue));
我的意图是计算functionName(inputValue)的数学值。 functionName和inputValue都存储在字符串中(当前的设置ID是设计好的,因此我无法更改)。 functionName和inputValue是变量,它们的内容将根据上下文而变化。
我可以得到有关如何计算价值的建议吗?
最佳答案
您可以将实际的函数作为键值对存储在一个对象中,如下所示
var functions = {
"Math.Sin" : Math.sin,
"Math.CoSine": Math.cos,
"Math.Tan" : Math.tan
};
var inputValue = 75;
var functionName = 'Math.Sin';
alert (functions[functionName](inputValue));
# -0.38778163540943045
如果
inputValue
以度为单位,则可以将其转换为这样的弧度function convertToRadian(degree) {
return degree * Math.PI / 180.0;
}
inputValue = convertToRadian(inputValue);