问题标签 [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 投票
1 回答
806 浏览

javascript - JavaScript for of 循环中迭代器和生成器的区别

让我们创建一个迭代器和一个生成器以类似地工作。

for of如果它包含 break 或 return 语句,它们在循环中表现不同的原因是什么?

生成器完成,而迭代器仍在循环结束后进行。

0 投票
2 回答
16512 浏览

javascript - for..in 或 for..of 对象键

因此,当我使用 for..in 循环遍历对象键时,我的 IDE 不喜欢。我收到警告:

可能对意外(自定义/继承)成员进行迭代,可能缺少 hasOwnProperty 检查

所以我明白了它在说什么,所以在这种情况下,使用类似的东西for (const key of Object.keys(obj))而不是for (const key in obj)?

在性能方面,两者之间有什么真正的区别吗?

0 投票
6 回答
871 浏览

javascript - for..of 循环如何从 Array 中获取值

我有这段代码,

我预计,0 cj1rdd9fc00013f69ccln57g0 和 1 cj1rdda8x00023f69g9281ay8 作为输出。我在这里想念什么?如何获得所需的输出?

0 投票
1 回答
75 浏览

javascript - 为什么Typescript中的`for...of`在循环之前复制可迭代对象?

例如:

被转译为:

这里有什么意义aKeys_1

您还可以在此处的 Typescript 操场上实时查看此内容。

0 投票
0 回答
53 浏览

javascript - 为什么 for...in 和 for...of 在同一情况下表现不同?

我阅读了 for...in 和 for...of 的解释,但随后遇到了这种情况,在相同的情况下它们的行为不同。

那么,...args&...rest是数组(对象)对吗?我认为case1是正确的,并且其行为与许多来源中的解释相同(例如MDN for...of

他们有什么区别,为什么在case2 for...in 工作而不是 for...of ?

0 投票
0 回答
33 浏览

javascript - 这个 for 循环控制台如何记录值而不是整个对象?

我正在学习 YDKJS 中的生成器,它解释了迭代器的工作原理,例如:

我理解这很好。然后它演示了如何使用for..of循环,以便iterator可以使用本机循环语法自动使用标准,例如:

我理解它的要点,但是只有value回来而不是整个对象,包括done: false?

谢谢!

0 投票
0 回答
36 浏览

javascript - 为什么这个 for 循环遍历未指定的元素?

我正在创建一个包含项目和子项目的清单。我有一个按钮来重置所有复选框,我需要检查项目是否都被选中,但不是子项目。

但是我的检查代码记录了所有的清单框,而不仅仅是项目。

这是模板:

这是代码:

为什么 updateTicks() 中的循环会同时注销 this.item_ticks 和 this.subitem_ticks?

0 投票
2 回答
663 浏览

javascript - 在 for...of 循环中创建 Promise 而不是 forEach?

我想并行执行一组 Promises,然后等到所有 Promises 都执行完毕。

这有效:

但是,如果我使用for (object of objects) {...}而不是objects.forEach(function(object) {...});它不起作用。对于数组中的每个 Promise,都会在数组中destroy(object);的第一个对象上执行:

这是为什么?

0 投票
3 回答
257 浏览

javascript - Javascript 简单的 for 循环与 for...of 性能

我已经看到,自 ECMA 6 以来,我们可以使用for...of而不是传统的 for 循环:

VS

你有没有看到第二个更具可读性、简单性和可维护性!

我只是想知道第二种语法的性能如何,因为我需要在游戏的渲染循环(每秒 60 次)中大量使用它。

你有线索吗?

0 投票
1 回答
99 浏览

reactjs - babel 的 for-of 循​​环传输代码不支持某些浏览器

我的反应项目中有一些 es6 代码,如下所示:

并且在传输到 es5 后运行良好。但是,如果我像这样更改它们:

ReferenceError: Can't find variable: Symbol然后它会在 iPhone 5c 中引发错误。我尝试了两者foreach for-in和纯for循环,它们都在那个旧设备上运行良好。但是,我需要做类似的事情async () => { for (...) { await doSthAysnc; } },它不能使用foreach。更何况,for-of本来就很危险,而且纯真for的很丑。所以如果可能的话,我更喜欢使用for-of. 谢谢。

@Bergi好吧,这就是它转换为的代码: javascript ("================================================================"),m=["a","b","c"],e.prev=38,v=c.a.mark(function e(n){return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,new Promise(function(e){return setTimeout(function(){return e(n)},1e3)});case 2:case"end":return e.stop()}},e,t)}),y=!0,b=!1,w=void 0,e.prev=43,_=m[Symbol.iterator]();case 45:if(y=(x=_.next()).done){e.next=51;break}return E=x.value,e.delegateYield(v(E),"t2",48);case 48:y=!0,e.next=45;break;case 51:e.next=57;break;case 53:e.prev=53,e.t3=e.catch(43),b=!0,w=e.t3;case 57:e.prev=57,e.prev=58,!y&&_.return&&_.return();case 60:if(e.prev=60,!b){e.next=63;break}throw w;case 63:return e.finish(60);case 64:return e.finish(57);case 65:e.next=69;break;case 67:e.prev=67,e.t4=e.catch(38);case 69:console.log("================================================================"),