我正在尝试在Javascript中创建一个简单的计算器。我有一个名为表达式的数组
chunk[0] = 12
chunk[1] = +
(“+”符号)
chunk[1] = 5
我使用for循环遍历块(chunk [])然后将其连接到单个表达式中,如下所示: -
equation = ""; // To make var equation a string
for(i = 0; i <= length; i++)
{
equation = equation + expression[i];
alert(expression[i]);
}
alert(equation);
alert(expression[i])
显示值12,+和5。
但警报(方程式)显示125(而不是“12 + 5”)。我需要变量方程为“12 + 5”,这样我以后可以调用eval(方程式)并得到12 + 5的值。
我在这里做错了什么?
答案 0 :(得分:0)
如果你有chunk = [ 12, '+', 5];
,那么你可以var eq = chunk.join("");
然后将其传递给eval
答案 1 :(得分:0)
你做错了什么?你有一个小错字。
从
修改问题的代码chunk[0] = 12
chunk[1] = '+'
chunk[1] = 5
到
chunk[0] = 12
chunk[1] = '+'
chunk[2] = 5
一切都应该有效。
为什么会这样:
+
和5
都被分配到chunk[1]
,5
覆盖了chunk[1]
的上一个分配(+
) }。这也解释了为什么显示的连接值为125
按顺序,第一个作业产生一个带有
的集合
会员chunk[0]
和内容12
第二个作业添加一个新成员,并产生一个带有
的集合
会员chunk[0]
,其内容为12
会员chunk[1]
,其内容为+
第三个任务会覆盖第二个成员,并产生一个带有
的集合
会员chunk[0]
,其内容为12
会员chunk[1]
,其内容为5
所有块的串联== 125
所需的连接== 12+5