如何执行JavaScript for loop?

问题描述 投票:1回答:2

for循环之后的代码在顶部的for循环之前执行。 Javascript是同步执行的,为什么它先在for循环之后执行?

function solution(A) {
  let diff = [];

  for (let i = 1; i < A.length; i++) {
    let sum1 = 0;
    let sum2 = 0;

    for (let j = 0; j < i - 1; j++) {
      sum1 += A[j];
      console.log('Why this is executing later? ' + sum1);
    }

    for (let k = i; k < A.length; k++) {
      sum2 += A[k];
    }

    console.log('Why this is executing frist? ' + sum1);
    diff.push(Math.abs(sum1 - sum2));
  }

  return Math.min(...diff);
}

solution([1,2,3,4,5]);
javascript asynchronous execution synchronous
2个回答
3
投票

第一次运行外循环时,i将为1。您的内部循环检查j<i-1j是否从0开始。因此,第一次执行内部循环时,它将检查0 < 0是否为假,并立即退出,而不执行内部循环。


3
投票

您的问题是,Why this is executing later消息中的代码在外循环的第一次运行中没有执行。当您在for(let i=1; i<A.length; i++){处进入第一个循环时,i将为1

现在单击for(let j=0; j<i-1; j++){,但i-11-1(因为i1),因此循环将执行0次。因此Why this is executing later将不会执行。

因此,将要执行的下一个console.log消息是带有Why this is executing frist的消息。

© www.soinside.com 2019 - 2024. All rights reserved.