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

javascript - javascript中的for..in和for each..in有什么区别?

javascript中的for..in和for each..in语句有什么区别?是否存在我不知道的细微差别,或者是否相同,并且每个浏览器都有不同的名称?

0 投票
2 回答
3855 浏览

javascript - 使用包含 MooTools 的 for..in 的 Javascript 数组迭代

我在 MooTools 中遍历一个数组,但在使用速记for..in循环遍历数组时看到了其他项目。当我使用常规for循环时它工作正常。这是 MooTools 污染全局命名空间的问题,还是我在这里做错了什么?

有一个createTabs()函数可以遍历数组并为数组中的每个值创建一个选项卡:

这是的输出console.log(i)

我了解前 2 个索引,但其余的来自哪里?

编辑:感谢 Chetan 和 k Prime 的快速回答。这是有道理的,Array.eachMooTools 的添加是一种更简洁的迭代方式!

现在看起来好多了:

0 投票
1 回答
221 浏览

javascript - Javascript for..in 和 jQuery 的 $.for() 不适用于 IE 中的 XMLHttpRequest

更新:仅当我使用旧版本的 jQuery (1.3.2) 而不是最新版本 (1.4.2) 时才会出现问题。

原始问题:

我发现了一个奇怪的行为,想知道是否有任何解决方法。javascript 'for' 循环可用于枚举对象的属性名称。我发现虽然在 IE 上它不适用于某些对象,尤其是 XMLHttpRequest。考虑以下代码。它将为 Firefox 上的 XMLHttpRequest 上的每个属性打开一个警告框。然而,在 IE 上,找不到任何属性。如果我使用调试器单步执行,对象上肯定有属性。如果我使用 jQuery 的 $.for() 函数,我会看到相同的结果。

0 投票
3 回答
1319 浏览

delphi - 在 Delphi 中,在 Excel 互操作工作表集合上使用 for 循环时出现“不存在 GetEnumerator”错误该怎么办?

我正在尝试编写一个 Delphi 程序,该程序将遍历 Excel 文件中的每个工作表并格式化一些单元格。不过,我在尝试对 Workbook.Worksheets 集合使用 for-in 循环时收到错误消息。错误具体是:

[DCC 错误] Office.pas(36):E2431 for-in 语句无法对集合类型“Sheets”进行操作,因为“Sheets”不包含“GetEnumerator”的成员,或者无法访问

发生这种情况的代码行是:

Worksheet和Workbook的定义如下:

我正在将此代码从 C# 移植到 Delphi,它可以在其中工作。有谁知道为什么我会收到这个 GetEnumerator 错误?我正在使用 Office 2007 Excel 互操作文件和 Embarcadero® Delphi® 2010 版本 14.0.3593.25826。

0 投票
6 回答
2550 浏览

javascript - Javascript 的“for in”构造是否应该迭代长度属性?

我正在制作一个书签,但我在 IE8 中遇到了一些奇怪的行为。导致问题的代码是这样的:

警告的第一件事是“长度,n”。这不是 chrome 中的情况:只是在 IE8 中。

有趣的是,根据代码是进入控制台/地址栏还是页面本身,它的行为似乎有所不同。

这是标准行为吗?

编辑:

也不是我运行它的网站。是否有可能返回一个在 IE 中设置键getElementsByTagName的数组?"length"它当然不会返回纯数组。

0 投票
2 回答
6656 浏览

javascript - JavaScript 的 for in 循环会遍历方法吗?

在yuiblog 上的一篇文章中,Douglas Crockford 说该for in语句将遍历对象的方法。为什么下面的代码不产生 ["a", "b", "c", "d", "toString"]?.toString() 和其他方法不是 my_obj 的成员吗?

0 投票
5 回答
263 浏览

python - Python迭代器问题

我有这个清单:

我想遍历列表并在同一迭代中处理不区分大小写的连续名称。所以在第一次迭代中,我会用“john”和“John”做一些事情,我希望下一次迭代从“james”开始。

我想不出使用 Python 的 for 循环来做到这一点的方法,有什么建议吗?

0 投票
4 回答
6522 浏览

javascript - 在 for-in-loop 中创建新对象

我想创建一个新对象并为存储在某个 json 中的每个数组分配一些属性。我有这个主要工作除了......

当我输出对象属性时,一切都是未定义的。

如果我在循环之外创建一个对象并将属性分配给它,它似乎工作正常,除了第一组属性被以下内容覆盖。不知道为什么我不能在循环内动态创建对象和分配属性。

0 投票
4 回答
549 浏览

javascript - 带有 continue 的 if 是否是一种很好的模式,可以防止在 Javascript 中迭代属性时过度嵌套?

我通常使用这种模式来迭代对象属性:

我不喜欢这种过度的缩进,最近有人向我指出,我可以通过这样做来摆脱它:

我喜欢这个,因为它不会引入额外的缩进级别。这种模式好吗,还是有更好的方法?

0 投票
4 回答
2590 浏览

javascript - 什么是……在javascript中的声明

任何人都可以解释如何在 javascript 中使用 for...in 语句。我已经阅读了 w3school 的文章,但我认为它不是很清楚。下面是代码,请解释一下: