我什么时候应该使用forEach?

时间:2013-06-04 18:02:40

标签: javascript for-loop foreach

我可以做,

var arr = [];

arr.forEach(function(i) {

     i;
});

for (var i = 0, length = arr.length; i < length; ++i) {

     arr[i];
}

我应该何时使用另一个,是否存在性能差异?

1 个答案:

答案 0 :(得分:7)

您可以在以下情况下使用foreach:

  • 您的数组是关联的或有间隙,即您无法通过递增的数字(1,2,5,'x', - 7)
  • 来覆盖每个元素
  • 您需要以与它们在数组中出现的顺序完全相同的顺序进行迭代。 (例如2,1,3)
  • 你想确定不会进入无限循环

最后一点是主要区别:foreach在副本上工作,所以即使你改变了元素,数组也保持不变,并且可以迭代而没有缺陷。

由于必须复制数据,因此该副本使foreach稍微慢一些。请记住,一些旧的或罕见的浏览器不支持foreach,但它们支持“for”。除非您的阵列真的大(10.000 +项目),否则请忽略速度差异。它在几毫秒内。

您可以随时使用

  • 你想要一个简单的方法来处理正在移动的阵列
  • 您需要特定的序列,例如for($ i = 100; $ i&lt; 1000; $ i + = 5)导致100,105,110 ......