javascript - 在循环中使用 Array.prototype.forEach 可以吗?

标签 javascript foreach jshint

JSHint 提示我,因为我使用 for(o in ...) 循环一个对象,然后使用 o.somearray.forEach(function(){。 ..}); 里面。它说不要在循环内创建函数,但在这种情况下它是否重要?它看起来更好一些,因为线条更少而且看起来(稍微)更好,但是它有什么重大意义吗?

使用普通的 for 循环并像这样遍历数组更好,还是创建一个函数并使用 ECMA 5 版本更好?

我正在做这样的事情:

for(var i in data) {
   data[i].arr.forEach(function(...) {
      // do magic
   });
}

最佳答案

可以使用 forEach,这里建议您传递给 forEach 的函数应该在循环之外创建,例如以下:

var doMagic = function(...) {
    // do magic
};
for (var i in data) {
    data[i].arr.forEach(doMagic);
}

不鼓励在循环内创建函数,因为它效率低下,JavaScript 解释器将在每次循环迭代时创建一个函数实例。 JSLint Error Explanations: Don't make functions within a loop 中提供了更多详细信息.

关于javascript - 在循环中使用 Array.prototype.forEach 可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22179590/

相关文章:

javascript - 如何通过 jQuery 在 HTML 输入中存储值

javascript - FireFox 中的放大弹出窗口不显示图像

javascript - 如何阅读 Stripe webhook 响应

java - 并排打印 csv 中的两个数组

visual-studio - JSHint (r10) : 'angular' is not defined

javascript - 洛达什和鲍尔 : best way to specify underscore "drop in replacement" version

php - 向博客添加类别和子类别

javascript - 为 promise 中的对象赋值

javascript - 排除目录 jshint

javascript - 如何使用 !不令人困惑?