javascript - 在 JavaScript 中执行循环的最佳方法是什么

标签 javascript jquery loops macros

我偶然发现了几种 JavaScript 循环方法,我最喜欢的是:

for(var i = 0; i < a.length; i++){
    var element = a[i];
}

但是根据此处的测试( http://www.robertnyman.com/2008/04/11/javascript-loop-performance/ ),可能应该这样编写,以便长度仅计算一次。

在 jQuery 中,有一个 .each 可以用来粘贴一个函数。我更喜欢这个,因为我不必像上面的解决方案一样输入两次数组。

如果 JavaScript 支持宏,那么创建自己的宏将是小菜一碟,但遗憾的是它不支持。

那么你们都用什么?

最佳答案

我已经开始在相关的地方使用迭代器。性能是合理的,但更重要的是它允许您封装循环逻辑:

function createIterator(x) {
    var i = 0;

     return function(){
       return x[i++];
    };
}

然后使用:

var iterator=createIterator(['a','b','c','d','e','f','g']);

iterator();

返回“a”;

iterator();

返回“b”;

等等。

迭代整个列表并显示每个项目:

var current;

while(current=iterator())
{
    console.log(current);
}

Be aware that the above is only acceptable for iterating a list that contains "non-falsy" values. If this array contained any of:

  • 0
  • false
  • ""
  • null
  • NaN

the previous loop would stop at that item, not always what you want/expect.

To avoid this use:

var current;

while((current=iterator())!==undefined)
{
   console.log(current);
}

关于javascript - 在 JavaScript 中执行循环的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/193547/

相关文章:

Excel VBA : Loop is working but not refreshing before printing to PDF file

javascript - Javascript 中什么更快?循环或重复函数调用?

javascript - 如何验证 JavaScript 代码在 C# 中是否有效

javascript - TypeScript:如何初始化对象并为其类型提供一些默认值

javascript - 从 sessionStorage 读取并使用 jquery 发送到 php 时删除引号

javascript - 无限期地循环 promise 直到被拒绝

javascript - 获取多边形的质心不起作用谷歌地图v3

jquery - 使用 Jquery 访问多个文件

jquery 每个 css 数组

javascript - jquery递归函数中奇怪的无限循环错误