Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将数组转换为数学计算表达式?_Javascript_Arrays - Fatal编程技术网

Javascript 如何将数组转换为数学计算表达式?

Javascript 如何将数组转换为数学计算表达式?,javascript,arrays,Javascript,Arrays,我试图写一个计算数学表达式,并将每个符号存储到一个数组中 例如,我想转换数组: let arr = ['10', '-', '(', '2', '+', '1', ')', '*', '3']; 对下面的表达: let result = 10 - (2 + 1) * 3; // 1 关于如何实现这一点有什么建议吗?它不会验证您的输入,但eval(arr.join(“”)会验证您的输入。 获取一个字符串并将其作为js表达式执行 它仅适用于eval 新功能不适用于此问题 const arr=

我试图写一个计算数学表达式,并将每个符号存储到一个数组中

例如,我想转换数组:

let arr = ['10', '-', '(', '2', '+', '1', ')', '*', '3'];
对下面的表达:

let result = 10 - (2 + 1) * 3;  // 1

关于如何实现这一点有什么建议吗?

它不会验证您的输入,但
eval(arr.join(“”)
会验证您的输入。
获取一个字符串并将其作为js表达式执行

它仅适用于
eval

新功能
不适用于此问题

const arr=['10'、'-'、'('、'2'、'+'、'1'、')、'*'、'3'];

eval(arr.join(“”));//1
eval(arr.join(“”))
Mate我纠正了它。您尚未单击“新建已更改”链接。您也可以创建自己的计算器。我们在大学里这样做是为了练习堆栈(对于数组,是使用
push
pop
)。基本上,您一直将数字推送到一个数组,将运算符推送到另一个数组。当你发现有更高优先级的东西时,你就在适当的地方处理它。你这样做直到数组为空。是的,这就是我目前练习的:)我忘了我可以使用eval()来实现这个目标。非常感谢,没有问题,但请记住,只有当表达式有效时,这才有效。另外,在使用<代码> EVA/COD>之前,请考虑阅读。