Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.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 为什么我的forloop只在if语句中运行一次?_Javascript_Arrays_Loops - Fatal编程技术网

Javascript 为什么我的forloop只在if语句中运行一次?

Javascript 为什么我的forloop只在if语句中运行一次?,javascript,arrays,loops,Javascript,Arrays,Loops,我正在用JS写一个计算器,现在我正在写“=”函数,现在我把代码贴在下面,所以我把exp=5+5,一切都很好,它告诉我总数是10,现在当我做5+5+5时,它仍然说10,好像循环不起作用,因为我想让它先做5+5,将总数更新为10,然后再次找到+运算符,然后添加加号后面的任何内容,我该怎么做?我不知道为什么循环不起作用 感谢所有的帮助 祝你今天愉快, 拉瓦 函数相等(){ var exp=document.form.textview.value; var expArray=exp.split(/\b/

我正在用JS写一个计算器,现在我正在写“=”函数,现在我把代码贴在下面,所以我把exp=5+5,一切都很好,它告诉我总数是10,现在当我做5+5+5时,它仍然说10,好像循环不起作用,因为我想让它先做5+5,将总数更新为10,然后再次找到+运算符,然后添加加号后面的任何内容,我该怎么做?我不知道为什么循环不起作用

感谢所有的帮助

祝你今天愉快, 拉瓦

函数相等(){
var exp=document.form.textview.value;
var expArray=exp.split(/\b/);
log(expArray);
设total=0;
for(设i=0;i
试试这个

    for (let i = 0 ; i < expArray.length; i++){
      console.log(expArray[0])
      total = parseFloat(expArray[0])
      if(i == '+' || '-' || '/' || '*'){
      console.log(i);
      n = expArray.indexOf(i)
      total += parseFloat(expArray[n + 1]);
    }

for(设i=0;i
=
运算符用于为变量赋值,但是无论变量的数据类型如何,
=
运算符用于比较两个变量

    for (let i = 0 ; i < expArray.length; i++){
      console.log(expArray[0])
      total = parseFloat(expArray[0])
      if(i == '+' || '-' || '/' || '*'){
      console.log(i);
      n = expArray.indexOf(i)
      total += parseFloat(expArray[n + 1]);
    }

for(设i=0;i

=
运算符用于为变量赋值,但是无论变量的数据类型如何,
=
运算符用于比较两个变量

代码中存在某些错误

total
应在
for
循环外部初始化,否则将生成不正确的总值

if(i='+'| |'-'| |'/'| | |*'){
,在这种情况下,而不是使用
赋值运算符
i:e=,
比较运算符
=
(严格相等运算符)应该使用。还需要单独的比较表达式,即:e
i=='+'|
i
只是数组元素的索引,而不是
i
它应该是数组元素。i:e
expArray[i]

让exp=“5+5+5”; 函数相等(){ var expArray=exp.split(/\b/); 设total=parseFloat(expArray[0]); for(设i=0;iconsole.log(equal());
您的代码中存在某些错误

total
应在
for
循环外部初始化,否则将生成不正确的总值

if(i='+'| |'-'| |'/'| | |*'){
,在这种情况下,而不是使用
赋值运算符
i:e=,
比较运算符
=
(严格相等运算符)应该使用。还需要单独的比较表达式,即:e
i=='+'|
i
只是数组元素的索引,而不是
i
它应该是数组元素。i:e
expArray[i]

让exp=“5+5+5”; 函数相等(){ var expArray=exp.split(/\b/); 设total=parseFloat(expArray[0]); for(设i=0;iconsole.log(equal())
if
语句中,您有
=
而不是
=
==
。您正在为
i
赋值
i='+'| |'-'| |'/'| |'*.
。您在赋值时,它应该是比较运算符
=
=
。此外,还需要单独的表达式
i=='+'-“|i==”/“|i==”
或者您可以使用include。我猜您是在与数组元素进行比较,而不是与
i
进行比较。在
if
语句中,您有
=
而不是
=
==
。您正在为
i
i=+'.\124;
分配一个新值在做赋值时,它应该使用比较运算符
==
。此外,需要使用单独的表达式
i='+'.\124; i='-'.\124; i='/'.\124; i='*'.
或者可以使用includes。我猜您是在对数组元素进行比较,而不是对
i
。您应该解释发布的代码有什么问题以及如何进行比较您的解决方案解决了OP的问题吗?
“+”| |“-“| |”/“| |”*”
是真实的值。您应该解释发布的代码有什么问题,以及您的解决方案如何解决OP的问题?
“+”| |”-“| |/“|”*”
是真实的值。