我有一个具有以下值的数组:
2, *, 5
我如何像这样执行此字符串:
2 * 5
所以返回的结果是10?
最佳答案
最可怕的不安全方式可能是执行以下操作:eval([2,"*",5].join(''))
但是我永远都不会像以往那样建议这样做。做到这一点的“正确”方法是编写某种解析器。
var ops = [2,"*",5]
var val = ops.shift();
while(ops.length > 0) {
var item = ops.shift();
switch(item) {
case "*": val *= ops.shift();
case "+": val += ops.shift();
case "-": val -= ops.shift();
case "/": val /= ops.shift();
}
}
从本质上讲,它就像一个非常简单的计算器一样工作...但是我仍然不能真正推荐这种方法。
您到底想做什么?也许除了数组之外,还有更好的方法来建模您正在尝试做的事情?
关于javascript - 如何在JavaScript中对数组的值执行数学运算?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7136174/