javascript - 我应该何时使用forEach?

标签 javascript for-loop foreach

我可以

var arr = [];

arr.forEach(function(i) {

     i;
});

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

     arr[i];
}

什么时候应该使用另一种,性能会有差异吗?

最佳答案

随时使用foreach:

  • 您的数组是关联的或有间距,即您无法以递增的数字(1,2,5,'x',-7)到达每个元素
  • 您需要以与数组中出现的顺序完全相同的顺序进行迭代。 (例如2,1,3)
  • 您要确保不陷入无尽的循环

  • 最后一点是主要区别:foreach可以在副本上工作,因此,即使您更改元素,该数组也将保持不变,并且可以进行迭代而不会出现缺陷。

    由于必须复制数据,因此该副本使foreach的速度比其慢一些。请记住,某些旧的或罕见的浏览器不支持foreach,但它们确实支持“for”。除非您的数组是真的是大(10.000 +项),否则请忽略速度差。以毫秒为单位。

    用于
  • 您想要一种简单的方法来处理正在
  • 上移动的数组
  • 您想要特定的序列,例如对于($ i = 100; $ i <1000; $ i + = 5)得出100、105、110 ...
  • 关于javascript - 我应该何时使用forEach?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16924526/

    相关文章:

    javascript - 遍历数组时文本变得未定义

    javascript - 无法区分 "similar"代码之间的区别

    使用 grep 和 awk 的 BASH FOR 循环

    javascript - For 循环陷入无限循环

    javascript - javascript for 循环内的异步过程

    php - symfony json api for 循环为空

    javascript - 带有返回语句的意外 token

    javascript - jquery 褪色问题

    php - Laravel 4 - 将 json 解码为 View

    java - 无法在 foreach 中使用 hibernate 实体