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

时间:2019-07-23 00:09:03

标签: 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) {
          console.log('2');
      }
  }

实际结果在1之前记录2。我需要在2之前记录1。

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

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:4)

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