【问题标题】:Set a variable once at the start of a loop在循环开始时设置一个变量
【发布时间】:2017-12-15 17:23:36
【问题描述】:

如果我有一个for (let item of items) 循环,是否也有办法跟踪迭代器?我有一个相当复杂的这种类型的循环,我希望有一个迭代器,它在 for 循环的开头从 0 开始。我知道for(let i=0;... 会跟踪我想要的方式,但我的案例的循环不会以易于跟踪的方式迭代,因此我使用for (let item of items) 循环。在循环开始之前设置值不是一个选项,因为 for 循环存在于 Subscription 中。

【问题讨论】:

  • 实际上我找到了另一个不涉及这个的解决方案,这是我的用例所特有的,但我会留下这个问题。
  • 你的items数组是什么样子的?
  • 这是pair 的类。
  • 好的,谢谢@zfrisch,这是一个解决方案。我实际上能够通过适当的 for 循环来解决这个问题。访问有关项目编号的信息。我只是想知道 JS 中是否有某种 static 变量声明系统可能有用。

标签: javascript typescript for-loop


【解决方案1】:

来自 Object.entries 的 MDN 文章:

const obj = { a: 5, b: 7, c: 9 };
for (const [key, value] of Object.entries(obj)) {
  console.log(`${key} ${value}`); // "a 5", "b 7", "c 9"
}

如果对象是数组也可以:

const arr = [ 5, 7, 9 ];
for (const [key, value] of Object.entries(arr)) {
  console.log(`${key} ${value}`); // "0 5", "1 7", "2 9"
}

【讨论】:

  • 我需要索引,而不是键值对。
  • @ZacharySchwatz 如果对象是一个数组,那么键就是索引。我编辑了答案。
  • @ZacharySchwatz 没问题 :)
猜你喜欢
  • 1970-01-01
  • 2014-09-05
  • 1970-01-01
  • 2019-11-26
  • 2022-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-20
相关资源
最近更新 更多