1

我正在学习javascript,并学习for循环。我确定这是基本部分,但我不知道 counter 变量是如何工作的..

我正在制作战斗应用程序,这是用户单击战斗日志时执行的功能,然后它将在console.log中显示最后的日志及其索引。

函数中的战斗日志是存储用户输入嵌套数组的数组。

let lastLoggedEntry;


function printLogHandler() {

  let i = 0;

  for (const logEntry of battleLog) {
    if ((!lastLoggedEntry && lastLoggedEntry !== 0) || lastLoggedEntry < i) {
      console.log(`#${i}`);
      for (const key in logEntry) {
        console.log(`${key} => ${logEntry[key]}`);
      }
      lastLoggedEntry = i;
      break;
    }

    i++;
  }
}

我的问题是初始值设置在 for 循环(i = 0)之外。但是当用户再次点击战斗日志,再次执行该函数时,for循环如何保存last i的数据和logEntry的值?(当用户第二次点击时,它将是 i = 1,并且 logEntry = 0 已经)

此外,它如何从第二次跳过“让 i = 0”?因为它不仅是 for 循环,它还执行函数,我认为 javascript 再次读取 let i = 0 并将重置为 0。(当然不会,但我想了解原因)

希望你们能帮帮我。谢谢,

4

1 回答 1

0

一些东西:

  1. 提供的示例中缺少闭合。应该有另一个右括号供代码验证。
  2. lastLoggedEntry必须在使用前定义为变量。
  3. 不清楚内容是什么battleLog

我认为,如果您澄清这些事情,可能会更容易回答您的问题。

于 2020-02-16T15:00:56.717 回答