问题标签 [enumerator]

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 回答
918 浏览

javascript - Safari 扩展获取选项卡位置或标识符

我正在开发一个 safari 扩展,在该扩展中我需要将特定的数组元素解析为创建的选项卡的每个实例。但是,我需要能够遍历数组,以便每个选项卡接收不同的元素以在注入的脚本中使用。我使用接收和发送消息结构来执行此操作,但我无法终生弄清楚如何遍历数组元素。我尝试创建一个充当索引的数组,然后在每次触发消息响应函数时递增它,但是由于某种原因这不起作用。我还尝试在每次从中拉出元素时简单地移动数组,但我相信这不起作用,因为在创建选项卡时该函数被触发得太快。

我希望能够在每个注入的脚本实例上使用某种枚举器函数来计算选项卡编号,然后将其与消息一起解析到全局页面以返回数组中的正确元素。

非常感谢您提供的所有帮助。

0 投票
7 回答
284 浏览

python - 如何枚举列表,第一个“索引”报告为 1?(Python 2.4)

我需要我的计数器从 1 开始。现在我有

但是必须有更好的方法,在 Python v2.4

0 投票
2 回答
718 浏览

.net - 将列表的枚举器传递给函数

看起来将列表的枚举器传递给函数“byval”与传递它的“byref”完全不同。本质上,常规的“byval”传递不会改变调用者的“enumerator.Current value”,即使函数推进了枚举器。我想知道是否有人知道为什么会这样?枚举器是不是像整数一样的原语,没有对象引用,因此对它的更改不会反映在调用者中?

这是示例代码:

这个函数是 byval,并陷入无限循环,吐出“1”消息框,因为枚举器的“当前”永远不会超过 5:

另一方面,这正如人们所期望的那样工作:

两个函数之间的区别仅在于 listFirstItem__ 函数是接受 byval 还是 byref 枚举器。

0 投票
2 回答
5190 浏览

ruby - 什么是枚举器对象?(使用字符串#gsub 创建)

我有一个属性数组如下,

当我这样做时,

我在终端得到以下输出

想知道为什么我得到一个枚举器对象作为输出?提前致谢。

编辑:请注意,不是attributes[-1].gsub("Photo:", ""), I am doing attributes[-1].gsub("Photo:")So 想知道为什么枚举器对象在这里返回(我期待一个错误消息)以及发生了什么。?

红宝石 - 1.9.2

导轨 - 3.0.7

0 投票
2 回答
156 浏览

haskell - 如何创建一个不断重试的枚举器

我正在使用 John Millikin 的 enumerator 包,并试图创建大致相当于 的东西Data.Enumerator.Binary.enumHandle,除了它连接套接字本身,然后尝试枚举生成的句柄。困难来自连接不可靠的事实,如果出现问题,我希望它重新连接并恢复枚举。

我通常希望 Enumerator 是它自己有意义的 Monad 实例,但由于它是函数的类型别名,它的单子行为只是其输入步骤的读取器,在这里似乎没有多大用处。我试图将一些东西放在一起,只是不断循环枚举器,使用catchError,但它没有达到我的预期,我无法弄清楚它在做什么,所以我想知道是否有人可以提出一个很好的惯用方法. 我对一个解决方案的框架很好,因为显然有很多细节我已经省略了。

有任何想法吗?

0 投票
1 回答
482 浏览

ruby - 为什么 Enumerator.new 需要一个“yielder”对象?

考虑一个像这样的简单枚举器:

我的问题是:为什么 ruby​​ 要求我们在 yielder 对象上调用 yield?换一种说法:为什么我们不能用yielder.yield number替换yield number?在这个例子中,如果允许的话,它看起来是一样的。是否有以非平凡方式使用 yielder 的示例?如果可以,可以给一个吗?如果不是,那么yielder的目的是什么?

谢谢。

0 投票
1 回答
221 浏览

haskell - 在枚举器中组合枚举器

免责声明:这是最近在 haskell-cafe 列表上提出的问题。我向任何受到双重职位困扰的人道歉。

我所知道的所有迭代实现包(例如iterateeiterIOconduit)都定义了一个枚举组合函数,但enumerator包除外。在我看来,这似乎是一个严重的限制,但实现起来也相对简单:

这里有一些我想念的问题吗?还是其他一些enumerator不定义枚举组成的原因?

0 投票
3 回答
11772 浏览

java - HashMap 的迭代器是快速失败的,而 HashTable 的枚举器不是,你到底是什么意思?

我正在查找这两个类之间的区别,这一点出现在很多答案中,这个博客是来源:http: //javarevisited.blogspot.com/2010/10/difference-between-hashmap-and。 html

但是我并不完全明白。有人可以详细说明吗?也许举个例子?

感谢您的光临!

0 投票
3 回答
1572 浏览

c# - 接口实现和返回类型

该类List<T>实现IEnumerable<T>接口。它有一个GetEnumerator返回List<T>.Enumerator.

我有一个如下的类,它给出了一个编译错误,说返回类型GetEnumerator与接口不匹配。

“Entities.Helpers.InsertionSortedSet”没有实现接口成员“System.Collections.Generic.IEnumerable.GetEnumerator()”。“Entities.Helpers.InsertionSortedSet.GetEnumerator()”无法实现“System.Collections.Generic.IEnumerable.GetEnumerator()”,因为它没有匹配的返回类型“System.Collections.Generic.IEnumerator”。

鉴于这List<T>似乎返回了它自己的Enumerator类(不是接口),但它确实实现了Enumeration<T>我很困惑的接口,因为我看不出我与那个类有什么不同。

我的设置有什么问题导致它失败,哪里List<T>有效?


我想返回 aInsertionSortedSet<T>.Enumerator而不是界面,因为它避免了我需要删除的拳击。

0 投票
3 回答
1556 浏览

c# - C# 如何制作 GetEnumerator() 的递归版本

有人可以就如何创建 GetEnumerator() 的递归版本给我建议吗?著名的河内塔问题可以作为一个例子,与我遇到的实际问题相当。显示一堆高度为 n 的磁盘的所有移动的简单算法是:

我真正想做的是设置一个实现 IEnumerable 的类 HanoiTowerMoves ,它使我能够迭代所有移动,如下所示:

GetEnumerator() 实现的第一步似乎摆脱了 MoveTower 参数。这可以通过使用堆栈轻松完成。我还介绍了一个 Move 类,它将参数组合成一个变量。

现在 MoveTower 可以改写如下:

此版本必须按如下方式调用:

迈向可迭代版本的下一步是实现该类:

现在对我来说最大的问题是:GetEnumerator() 的主体是什么样的?有人可以为我解开这个谜吗?

下面是我创建的控制台应用程序的 Program.cs 代码。