Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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 我在一个for循环中有两个if语句,为什么它有时会在第一个语句之前运行第二个if语句?_Javascript - Fatal编程技术网

Javascript 我在一个for循环中有两个if语句,为什么它有时会在第一个语句之前运行第二个if语句?

Javascript 我在一个for循环中有两个if语句,为什么它有时会在第一个语句之前运行第二个if语句?,javascript,Javascript,我有这段代码,有时第一条if语句先运行,有时第二条if语句先运行。我不确定为什么会这样,因为我认为javascript是同步的 for (let i = 0; i < dataObject.length; i++) { if (dataObject[i].TEAM_NAME === team1) { console.log('1'); } if (dataObject[i].TEAM_NAME === team2) {

我有这段代码,有时第一条if语句先运行,有时第二条if语句先运行。我不确定为什么会这样,因为我认为javascript是同步的

for (let i = 0; i < dataObject.length; i++) { 
      if (dataObject[i].TEAM_NAME === team1) {
          console.log('1');
      }

      if (dataObject[i].TEAM_NAME === team2) {
          console.log('2');
      }
  }
for(让i=0;i
实际结果记录为1之前的2。我需要在2之前记录1

当我记录进来的数据对象时,if语句似乎是按照字母顺序运行的,但我不确定这是怎么可能的


任何帮助都将不胜感激

只有在
team1
之前的
dataObject
中出现
team2
时,才会发生这种情况。如果不希望发生这种情况,则必须对
dataObject
重新排序以防止它发生,或者将结果保存到
team2
直到循环完成后,或者执行两次传递,一次只传递给
team1
,一次只传递给
team2
。还有其他越来越奇怪的方法,但从根本上说,问题是您要求它迭代
dataObject
,以便在看到值时立即报告它们,而且您的值并不总是按您期望的顺序出现。

只有在
team1
之前的
dataObject
中出现
team2
时,才会出现这种情况。如果不希望发生这种情况,则必须对
dataObject
重新排序以防止它发生,或者将结果保存到
team2
直到循环完成后,或者执行两次传递,一次只传递给
team1
,一次只传递给
team2
。还有其他方法变得越来越奇怪,但从根本上说,问题是您要求它按顺序迭代
dataObject
,并在看到值时立即报告它们,而您的值并不总是按您期望的顺序出现。

我将添加一个
console.log()
在循环顶部的
if
语句之外,这样您就可以知道迭代何时发生。这只是因为第二个条件是truthy first,它与循环增量无关。我认为您可以简单地使用if(){}else if(){}而不是两个if(){}为了在2I之前先实现1,我会在循环的顶部添加一个
console.log()
,在
if
语句之外,这样您就可以知道迭代何时发生。这只是因为第二个条件是truthy first,它与循环增量无关。我认为您可以简单地使用if(){}else if(){}代替两个if(){}在2之前先达到1