是否有更好的方法在数组中的每个项目上调用方法而不是:
_.each(items, function(item) {
item.method();
});
在Scala中,您可以执行以下操作:
items.foreach(_.method())
想知道javascript中是否有类似内容
答案 0 :(得分:5)
也许尝试使用built-in foreach?
items.forEach(function(item) {
item.method();
});
浏览器支持目前为pretty much ubiquitous。
答案 1 :(得分:5)
由于你的问题是用Underscore标记的,它有一个不错的实用方法:Original Example:
_.invoke(items, 'method')
答案 2 :(得分:3)
这是你不喜欢的匿名功能吗?我发现它比这个答案更具可读性,但是如果你真的想要避免它,并且每个项目通过原型共享相同的method
,并且你知道至少有一个项目,你可以这样做以避免它:
_.each( items, items[0].method.call );
在ES6中,您还可以使用arrow function:
_.each( items, item => item.method() );
答案 3 :(得分:3)
答案 4 :(得分:1)
尝试使用for
循环
for (var i=0;i<items.length;items[i++].method());
var items = [{
method: function() {
console.log(0)
}
}, {
method: function() {
console.log(1)
}
}];
for (var i = 0; i < items.length; items[i++].method());
&#13;