如何在javascript中对数组's值执行数学运算
How to perform math on an array's values in javascript?
我有一个值如下的数组:
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();
}
}
这基本上就像一个非常简单的计算器…但我还是不推荐这种方法。
你到底想干什么?也许有比数组更好的方法来模拟你要做的事情?
假设您可以使用顺序和括号处理自己的优先级,并且您可以使用eval
,然后使用eval
:
var str = "2,*,5";
var exp = str.split(",").join("");
var n = eval(exp);
alert(n);
同样,这假定您的初始字符串中没有空格。
你可以这样做:
var array = [2, '*', 5];
eval(array.join(''));
这是eval为数不多的有用之处之一,但是您可能不想给它任何东西。
相关文章:
- 哪个布尔运算更快<或者<=
- 使用JavaScript进行乘法运算
- 如何在一个html页面上使用js进行2次乘法运算
- 我可以在不使用乘法运算符“”的情况下进行乘法运算吗*"在JavaScript中
- 不是每次NaN显示时都在jquery中进行乘法运算
- 在JS中返回数组的大整数运算
- 反向位AND运算
- Javascript:如何对属性变量(例如var.hello.push)执行数组方法?太习惯AS3了
- forEach 仅执行数组的最后一个元素
- 此程序中按位运算的目的是什么
- 指数值的算术运算
- 如何在三元运算的结果上执行多个函数
- 如何动态获取输入值并使用javascript执行算术运算
- 简单的三元运算不起作用
- 在本地将javascript添加到examplep中以执行数学/公式运算
- 为什么只有一个数字项的数组可以用一些算术运算
- 使用jquery进行一些求和和和乘法运算
- 你能用javascript解释对象和数组运算吗
- 循环执行数组函数jQuery
- Javascript在数学运算后返回一个NaN值