问题标签 [loops]

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 投票
2 回答
356 浏览

algorithm - 功能替代品?

当我继续学习函数式编程时,我开始怀疑是否有替代我默认的“过程”思维方式的替代方案。更具体地说,我正在查看我编写的函数。这是它的作用:

所以,现在我正在使用带有 accum 变量的标准循环*来执行上述操作。它工作得很好,而且在现实生活中迭代肯定没有错,但是由于这个练习的目的是扩展我的思维方式,我很好奇上述算法是否有更实用的方法。

谢谢!

*(实际上是递归,但无论如何)

0 投票
12 回答
42223 浏览

c# - 如何在循环中更新 C# 哈希表?

我正在尝试在循环中更新哈希表,但出现错误: System.InvalidOperationException: Collection was modified; 枚举操作可能无法执行。

有没有办法解决它,或者可能有更好的数据结构来实现这个目的?

0 投票
5 回答
7812 浏览

php - 如何存储和重置 PHP 数组指针?

我有一个关联数组,即

然后我做

问题是 IsPrime 还循环通过 $primes 数组,

这会破坏我正在迭代的数组指针。

我希望能够在 IsPrime() 函数中保存和恢复数组的内部指针,这样它就不会产生这种副作用。有没有办法做到这一点?

0 投票
2 回答
13696 浏览

javascript - Javascript 循环中的事件处理程序 - 需要闭包吗?

我正在处理一些我从别人那里接手的 html 和 Javascript 代码。该页面每十秒重新加载一个数据表(通过异步请求),然后使用一些 DOM 代码重新构建该表。有问题的代码如下所示:

然而,当onchange为一个元素触发事件<select>时,似乎相同的值被传递给表中onStatusChanged()每个的方法<select>(我已经验证了在循环的每次迭代中,callid并被anotherid赋予了新的、不同的值)。

我怀疑这是因为我使用select.onchange = function()语法设置事件处理程序的性质。如果我理解它是如何正常工作的,那么这个语法将 onchange 事件的闭包设置为一个引用这两个引用的函数,它们最终具有在循环的最后一次迭代中设置的任何值的最终值。callid当事件触发时,和引用的anotherid值是在最后一次迭代中设置的值,而不是在单个迭代中设置的值。

有没有办法可以复制我传递给的参数的值onStatusChanged()

我更改了标题以更好地反映问题和接受的答案。

0 投票
5 回答
10264 浏览

c# - foreach 或 Repeater - 哪个更好?

我正在使用 MVC 在 ASP.Net 中构建一个网站,并且需要列出一组结果。以下两项都按我的意愿工作,但我想知道哪个更快,更清洁和/或更好 - 或者是否完全有另一种选择更合适?

注意:ViewData.Model是类型IEnumerable<Thing>,我需要显示更多的属性Name- 我已经裁剪了这个例子的代码。




0 投票
6 回答
422658 浏览

python - 在 Python 中创建对象列表

我正在尝试创建一个 Python 脚本来打开多个数据库并比较它们的内容。在创建该脚本的过程中,我在创建其内容是我创建的对象的列表时遇到了问题。

为了这篇文章,我已经将程序简化为最基本的内容。首先,我创建一个新类,创建它的一个新实例,为其分配一个属性,然后将其写入一个列表。然后我为实例分配一个新值并再次将其写入列表......一次又一次......

问题是,它总是同一个对象,所以我实际上只是在更改基础对象。当我阅读列表时,我一遍又一遍地重复相同的对象。

那么如何在循环中将对象写入列表?

这是我的简化代码

那么我如何(追加、扩展、复制或其他)simpleList 的元素,以便每个条目包含对象的不同实例,而不是全部指向同一个?

0 投票
3 回答
178 浏览

vba - 创建一个可变大小的组以在 Excel 2003 中循环的好方法是什么?

我有一个针对很多项目运行的程序,跳过某些不符合标准的项目。但是,然后我回去为一些在第一遍中错过的人运行它。我目前通过手动为每个人重新运行该过程来做到这一点,但理想情况下,我希望有一个更轻松的解决方案。

我的老板建议可能有效的方法是创建一个包含相关项目名称的列表(如在数据 -> 列表中),然后遍历该列表。可悲的是,我的帮助文件 fu 似乎让我失望了——我不知道我是否只是不知道要寻找什么,或者是什么。

运行“生成宏”命令显示首先创建列表的 VBA 是沿着 ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1"), , xlYes).Name = "List1"

不幸的是,我似乎无法弄清楚如何处理结果列表。我正在寻找沿线的循环

有什么建议么?

0 投票
7 回答
5722 浏览

language-agnostic - 如何触发一个功能一次,而且只有一次......?

我经常只想触发某个函数一次,但我需要从另一个重复调用的函数中触发它。例如,拍摄某物的快照以备后用。我通常通过设置一个全局布尔值来做到这一点。

我想知道我这样做的方式是否实际上是最好的方式?

我似乎记得读过全局变量不好,全局布尔变量更糟!

无论如何,这就是我通常只完成一次触发某个方法的方式:

在我最初的一组变量中......

然后,在经常调用的函数中......

对我来说这似乎很合乎逻辑,但这是正确的吗?

更新:好吧,根据我从您的答案中学到的知识,我现在不是检查全局布尔变量,而是首先检查 XML 节点是否存在(在写入磁盘之前,我将图像存储在 XML 结构中),并且,如果不是,那么我将使用 base64 编码的图像数据附加一个新节点。我仍然设置了一个布尔标志,以便稍后我可以在需要时用用户编辑的图像数据覆盖空白图像。它完美地工作。感谢大家的帮助!

我现在也对在某些情况下使用该特定(线程不安全)系统感到更自在。

0 投票
4 回答
1520 浏览

jquery - 为什么这个 Javascript (jQuery) 不进入无限循环?

我在Karl Swedberg 的博客上阅读了关于绑定和解除绑定事件的精彩文章(因为我是一个使用 jQuery 的 js 初学者),我对这部分代码完全感到困惑(为简洁起见):

为什么通过将相同的函数放在自身内部,它不会继续执行无限循环?但是,它用于将事件重新绑定到元素......!?

0 投票
3 回答
7278 浏览

javascript - jQuery 闭包、循环和事件

我有一个与此处类似的问题:Javascript 循环中的事件处理程序 - 需要闭包吗?但我正在使用 jQuery,并且给出的解决方案似乎在绑定而不是单击时触发事件。

这是我的代码:

我尝试了几种不同的方法都没有成功...

最初的问题是 _this.Indicator.TrueImage 始终是最后一个值,因为我使用循环计数器而不是参数来选择正确的图像。