问题标签 [for-of-loop]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
7238 浏览

typescript - 输入'HTMLCollectionOf' 必须有一个返回迭代器的 '[Symbol.iterator]()' 方法

我正在构建一个数组

const myCanvas = document.getElementsByTagName('canvas')

它实际上在工作。它返回给我的是这样的:

这是一个 TypeScript 项目,我想迭代这个数组并转换每个图像以记录它。

像这样:

(我没有使用foreach,因为它不适用于HTMLCollectionOf<HTMLCanvasElement>类型)

我需要迭代返回我的HTMLCollection那个。getElementsByTagName输出是:

错误

0 投票
1 回答
402 浏览

javascript - 如何在 JavaScript 中重做 for...of 循环?

在 Ruby 中,redo可以使用关键字返回到循环的开头而不消耗输入。我想对for...ofJavaScript 中的循环做同样的事情。

通常,您只需不增加常规for循环的索引即可。但是,我必须使用for...of循环,因为它循环遍历字符串的 Unicode 代码点,而常规for循环将遍历字符串的 UTF-16 代码单元。

如何在不重复代码的情况下回到循环的开头?

0 投票
3 回答
2468 浏览

javascript - 使用 for...of 循环删除数组项

我正在尝试编辑数组并删除不满足特定条件的元素。如果我使用reverse for loop组合 with .splice(index,n),则代码可以正常工作。我坚持使用 ES6for...of循环实现相同的功能

使用 for..of

有没有办法使用for...of循环来实现这个功能,还是我必须坚持reverse for loop

更新
我需要将不符合filter()orreverse for loop函数删除的元素的条目收集到辅助数组中。

0 投票
1 回答
1360 浏览

javascript - 在进行修改时需要一个“for-of”循环而不是一个“for”循环

我在使用TSlint时遇到问题,并理解为什么for(i=0; ...)不再允许循环。

假设我有一个简单的代码,例如:

TSlint要求我将其转换为for -of。但是,使用for-of不起作用,因为我需要修改值并且 for-of 不允许修改。我可以使用类似的东西

但随后我收到编译警告 TypeScript and Iterator: Type 'IterableIterator<T>'is not an array type 我必须更改编译选项。另外,我可以迭代keys()我认为有点愚蠢的for(const i=0...)

有人可以解释一下为什么TSlint仍然在抱怨这个以及为什么不允许使用for(const i=0; ....)

此外,我刚刚看到如果在for-of中执行此代码

我最终会得到相同的数组,因为它在循环之后没有被修改,但是,如果我有类似的方法但使用对象

惊喜,我的对象数组在循环之后被修改了!有人可以解释一下为什么吗?

谢谢

我搜索了该错误,并在 github 中将其视为已关闭的问题,但我找不到解决方案 https://github.com/palantir/tslint/pull/1813

0 投票
1 回答
226 浏览

javascript - 在声明方面,Javascript for of 循环中的 let 和 const 之间没有区别吗?

我最近遇到了这段代码:

我认为最好使用let声明,temp因为这样变量只会被声明一次。但是,我也通过 babel 运行了这个示例以及版本,let这就是我所看到的:

变成:

所以 babel 对待constlet相同。我想知道 Javascript 运行时是否在引擎盖下同样对待这 2 个版本。得出的结论是即使let在循环内声明了一个变量,它仍然会在每次迭代时重新声明?

0 投票
4 回答
15718 浏览

javascript - for...of 循环。我应该使用 const 还是 let?

当使用 for of 循环时,这两个都是允许的并且可以工作:

我总是使用const,因为我不喜欢在任何情况下更改number变量,但是当我在其他人的代码中看到for...of循环时,它经常使用let. const也许有一个我没有看到的缺点?浏览器漏洞?

为什么使用const以及何时letfor...of循环中使用?

0 投票
3 回答
45 浏览

javascript - 为什么函数体内的 for of 循环没有给我传统 for 循环所做的预期输出?

为什么函数体内的 for of 循环没有给我传统 for 循环所做的预期输出?似乎 for of 循环中的 el 与 for 循环中的 iterable[i] 不同?

0 投票
1 回答
194 浏览

javascript - JavaScript:如何将 for/of 循环转换为带有变量的普通 for 循环?

我有一个代码,我需要将 for/of 循环更改为普通的 for 循环,但我不知道如何转换变量。比如一个有一个

如何将其更改为这种结构?

0 投票
2 回答
64 浏览

javascript - 在 JavaScript ES6 中,for-in 循环和 for-of 循​​环中,变量 i 在块的每次迭代后停止存在?

通常我会let i在以下前两种情况下使用 a :

但是Mozilla 文档声明 aconst可以使用。那么i区块结束后就不复存在了{ console.log(i) }?如果是上面的第三种情况,那不是真的吗?

这是一个微妙的规则吗?循环变量forfor ( in )for ( of )loop在块之后就不存在了,但是对于for (;;)循环,它还存在吗?它有点微妙——它在任何 ES6 规范中吗?

0 投票
0 回答
63 浏览

node.js - Node.js 异步 for 循环未运行

我正在设置一个 for 循环来向 Redis 添加数据。由于所有 Redis 调用都是异步的,而且我不能只添加 JSON 对象,因此我正在尝试使用for..of循环来添加所有内容。我的问题是由于某种原因它没有运行循环。这是代码:

我可以访问“使其成为 else 语句”控制台日志,但它实际上从未运行过 for 循环。我尝试将其设为异步函数,然后调用该函数,但它仍然没有运行。我什至没有得到res.send()我在这里缺少什么的回应?