我有以下代码: for(var i = 0; i < list.length; i++){ mc_cli.get(list[i], function(err, response) { do_something(i); }); } mc_cli是到memcached数据库的连接。 正如你可以想象的那样,callback函数是asynchronous的,因此可以在for循环已经结束时执行。 另外,当以这种方式调用do_something(i)它总是使用for循环的最后一个值。 我以这种方式尝试了封闭 do_something((function(x){return x})(i)) 但显然这又一次使用了for循环索引的最后一个值。 我也尝试在for循环之前声明一个函数,如下所示: var create_closure = function(i) { return function() { return i; } } 然后打电话 do_something(create_closure(i)()) 但是又一次没有成功,返回值始终是for循环的最后一个值。 有人可以告诉我,我做什么closures错了吗? 我以为我了解他们,但我不明白为什么这是行不通的。
我已经听了好几次了。 向后计数JavaScript循环真的快吗? 如果是这样,为什么? 我见过几个testing套件的例子,显示反向循环更快,但我找不到任何解释为什么! 我假设这是因为循环不再需要评估一个属性,每次检查它是否完成,它只是检查最终的数值。 即 for (var i = count – 1; i >= 0; i–) { // count is only evaluated once and then the comparison is always on 0. }
有可能在C ++的for循环的初始化主体中声明不同types的两个variables? 例如: for(int i=0,j=0 … 定义了两个整数。 我可以在初始化主体中定义一个int和一个char ? 这将如何完成?
首先,我了解90%的应用程序性能差异是完全不相关的,但我只需要知道哪个是更快的构造。 那和… 网上目前提供的信息令人困惑。 很多人都说foreach是不好的,但是从技术上来说,它应该更快,因为它假设使用迭代器来简化编写数组遍历。 迭代器,再次假设是更快,但在PHP中,也显然死缓(或者这不是一个PHP的东西?)。 我正在谈论数组函数:next()prev()reset()等等,如果它们是函数,而不是那些看起来像函数的PHP语言特性之一。 为了缩小这一点 :我没有兴趣遍历数组的任何超过1的步骤(也没有消极的步骤,即反向迭代)。 我也没有兴趣遍历任意点,只是0到长度。 我也没有看到有定期发生超过1000个键的数组操作,但我确实看到一个数组在应用程序的逻辑中被遍历多次! 对于操作来说,主要只是string操作和回显。 这里有几个参考网站: http://www.phpbench.com/ http://www.php.lt/benchmark/phpbench.php 我到处听到的是: foreach是缓慢的,因此/更快 PHP foreach复制它迭代的数组; 为了使它更快,你需要使用引用 代码如下: $key = array_keys($aHash); $size = sizeOf($key); for ($i=0; $i < $size; $i++) $key = array_keys($aHash); $size = sizeOf($key); for ($i=0; $i < $size; $i++) $key = array_keys($aHash); $size = sizeOf($key); for ($i=0; $i < $size; […]
如何使用for循环迭代目录中的每个文件? 我怎么能告诉如果某个条目是一个目录,或者如果它只是一个文件?
如果有的话,以下两个循环之间的性能差异是什么? for (Object o: objectArrayList) { o.DoSomething(); } 和 for (int i=0; i<objectArrayList.size(); i++) { objectArrayList.get(i).DoSomething(); }
我正在运行以下forms的事件循环: var i; var j = 10; for (i = 0; i < j; i++) { asycronouseProcess(callBackFunction() { alert(i); }); } 我想要显示的是一系列显示数字0到10的警报。问题在于,当callback函数被触发时,循环已经经历了几次迭代,并且显示了更高的i值。 有关如何解决这个问题的任何build议?
在Java中,您可以使用for循环遍历数组中的对象,如下所示: String[] myStringArray = {"Hello", "World"}; for (String s : myStringArray) { // Do something } 你可以在JavaScript中做同样的事情吗?
我被告知不要在JavaScript for…in使用数组。 为什么不?
在C#/ VB.NET / .NET,哪个循环运行更快, for或foreach ? 自从我读了一个for循环比foreach循环更快的工作, 很久以前我就认为它适用于所有集合,泛型集合,所有数组等等。 我搜索了Google,发现了一些文章,但其中大多数是不确定的(阅读文章的评论),并公开结束。 最理想的是将每个场景列出,并为相同的最佳解决方案。 例如(只是一个例子): 迭代1000个以上的字符串数组 – 比foreach更好 用于迭代IList (非泛型)字符串 – foreach比for更好 在网上找到一些相同的参考资料: 由Emmanuel Schanzer创作的盛大的旧文章 CodeProject FOREACH VS. 对于 博客 – 为了达到或不达到foreach ,这就是问题所在 ASP.NET论坛 – NET 1.1 C# for vs foreach [编辑] 除了可读性方面外,我对事实和数字也很感兴趣。 有一些应用程序在最后一英里的性能优化挤压很重要。