问题标签 [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 回答
57 浏览

javascript - Js 只识别 if 中数组的前 2 个元素

基于我的老问题,我开始从头开始在 html/js/css 中重建我的游戏。当我只有播放器和 1 个积木时,它似乎有效,但在有 2 个或更多积木时不起作用。

我复制了关于使用一个数组将对象推入其中的概念。然后,我没有使用过滤器,而是为此数组使用了一个 for-of 循​​环来进行一个函数中的运动,并检查curentElement(player 0)是否与Obj(由循环选择)不同,然后检查位置和如果它碰到什么东西就记录下来。这是我的代码:

它应该只是阻止我撞到第二块砖(第一块阻止我并记录它),但它让我通过并且没有记录任何关于它的内容。它接缝以获得正确的 x,y,width,height,setPosition 值,所以我认为这是由于 move 函数中的 if 语句,但我不确定。有人可以解释一下为什么会这样吗?我用谷歌搜索了很多,但看起来没有什么是我正在搜索的。PS:我想保留没有 jQuery 的代码,但如果有必要这样做,我会使用它。

0 投票
3 回答
1362 浏览

javascript - 使用 for-of 循​​环的数组中所有元素的总和/平均值

我已经阅读了有关 for-of 循​​环的其他问题,并提出了此代码计算数组中所有元素的平均值和总和,似乎有一些不正确的地方,将不胜感激。:

如果你们知道使用“for-of”循环做同样事情的其他更简单的方法,请随时分享。

0 投票
1 回答
512 浏览

javascript - 使用 for of 循环计算数组中的多个元素

我是 JavaScript 的新手,我有一个练习,for...of但它失败了。它回来了NaN

我在哪里做错了,我需要什么?

代码:

0 投票
1 回答
369 浏览

javascript - 为什么 for-of 不跳过稀疏数组的空槽?[JavaScript]

正如标题所说,为什么for-of运行循环体时将循环变量绑定到undefined不在 中的索引Array,而其他迭代构造(forEach()for-in等)却没有?

澄清:许多人误解了这个问题

不是关于:

  • 迭代TypedArrays(不能稀疏)或任何其他班级
  • 如何“正确”迭代在稀疏上Array(所有其他方法似乎都以预期的方式工作)
  • 跳过undefined元素在一个Array

在 MDN 上找到的以下非正式描述是否不正确?

for...of语句 [...] 调用自定义迭代钩子,其中包含要为对象的每个不同属性的值执行的语句。

即它也被调用用于不存在的属性。

这是预期的行为()以及为什么以这种方式设计?

0 投票
3 回答
60 浏览

javascript - For-of 循​​环默认迭代器函数

考虑在 上定义的这个简单的生成器函数Object.prototype

当然,也可以这样使用:

但是我想知道是否有任何方法可以将pairs函数分配给对象原型,因此它将在for-of循环中自动触发而无需显式调用;像这样:

有任何想法吗?

0 投票
1 回答
591 浏览

javascript - 在 JavaScript 中退出 for-of 循​​环块中使用 Break 语句与提前返回

for of如果没有结果值,我需要退出一个循环。我突然想到我可以使用早期return语句来处理这个问题,或者使用break语句。需要明确的是,在这种情况下,在我跳过的部分之后的这段代码中没有额外的代码可以执行,所以我假设任何一个都可以在这里工作(中断或返回)。在这种特殊情况下使用一个而不是另一个的任何功能或性能原因?

选项1:(休息)

选项2:(返回)

0 投票
3 回答
106 浏览

javascript - 在 JavaScript 中使用 for..of 进行迭代时从数组中删除元素是否应该是安全的?

我知道它适用于Set,但我的印象是它也适用于 Array。所以我在 Chrome 中尝试了它,但很惊讶它不起作用:

它没有删除4.

所以我的问题是,迭代安全是否只应该与Setand一起使用Map,而不是Array

(如果是这种情况,那么除了简单的语法之外,我看不到使用它的好处for(;;)。我的印象for..of是这将防止错误,即使使用Array,就像使用Setand一样Map

请注意,作为一个技巧,我可以通过克隆数组(或反向迭代)来做到这一点:

0 投票
1 回答
6594 浏览

javascript - 我可以在 Javascript for...in 和 for...of 循环中使用 continue 和 break 吗?

我可以在and类型的循环中使用breakandcontinue语句吗?或者它们只能在常规循环中访问。for...infor...offor

例子:

0 投票
0 回答
110 浏览

javascript - for 循环和 for 循环与 async 和 await 顺序

我已经阅读了诸如 Using async/await inside for loop之类的帖子

循环内出现意外的“等待”。(无等待循环)

我正在尝试运行一个循环,将一些数据保存到数据库中sequentially

不知何故,我没有让它工作,它仍在运行parallel

我已经通过使用for of loop这样的方式尝试了这两种方法

使用for loop

两种方式仍然并行运行。

提前感谢您的任何建议和帮助。

0 投票
1 回答
241 浏览

typescript - 当产生一个元组时,为什么打字稿会联合两个索引的类型?

我正在[number, object]从生成器函数中生成一个具有类型值的数组,并通过循环遍历该函数for...of。使用 is 类型解构值for (const [k, v] of iterator())时。我希望它具有与我在生成器函数中使用的类型相同的类型。vnumber | objectobjectyield

我在这里创建了我在打字稿 REPL 中遇到的问题的演示

问题出在第 22 行,打字稿编译器抱怨访问解构后可能不存在的键。

为什么打字稿认为解构的变量可能是任何一种类型?