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/