替换javascript中数组的未知编号

替换javascript中数组的未知编号,javascript,arrays,replace,Javascript,Arrays,Replace,我正在尝试用一个数字替换数组的多个部分。我正在制作一个计算器,我想用一对括号和括号之间的内容替换为内容的总和。将(2*2+4)替换为8。数组包含一个值(,2,*,2,+,4),我希望这个值仅为8。我正在使用javascript,我希望有人知道如何解决这个问题。 致以最良好的祝愿 在您的示例中,数组的内容可以很容易地映射到有效的JavaScript表达式中。如果这是真的,那么您可以使用JavaScript解释器对表达式求值并得到您想要的答案。例如: var myArray = ['(', '2',

我正在尝试用一个数字替换数组的多个部分。我正在制作一个计算器,我想用一对括号和括号之间的内容替换为内容的总和。将(2*2+4)替换为8。数组包含一个值(,2,*,2,+,4),我希望这个值仅为8。我正在使用javascript,我希望有人知道如何解决这个问题。
致以最良好的祝愿

在您的示例中,数组的内容可以很容易地映射到有效的JavaScript表达式中。如果这是真的,那么您可以使用JavaScript解释器对表达式求值并得到您想要的答案。例如:

var myArray = ['(', '2', '*', '2', '+', '4', ')'];
var myExpression = myArray.join(' ');
var myResult = window.eval(myExpression);

您可以对嵌套零件使用另一个数组,并在找到闭合父项时计算每个零件

var数组=['('、'2'、'*'、'2'、'+'、'4'、')'],
嵌套=[]],
我
对于(i=0;iconsole.log(嵌套);
您需要评估令牌。为此,您需要将它们转换为令牌(您或多或少都有,但可能有更好的表示法)。然后您需要将它们转换为可评估的表示法-反向波兰表示法(
*
2
2
+
4
)甚至一棵树。最后,对它们进行评估。这并不简单,每一步都可以解决几个问题。解析数学方程是一个更容易的解析问题,但它仍然是一个相当大的主题。