Javascript 我在一个for循环中有两个if语句,为什么它有时会在第一个语句之前运行第二个if语句?
我有这段代码,有时第一条if语句先运行,有时第二条if语句先运行。我不确定为什么会这样,因为我认为javascript是同步的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) {
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