[英]jQuery .each() vs. .map() without return
当没有返回值时,.each()和.map()之间有什么区别吗? 在这种情况下使用其中一个是否有任何好处?
myList.map(function(myModel, myIndex){
myModel.itemOne = itemOne;
myModel.itemTwo = itemTwo;
myModel.itemThree = itemThree;
});
myList.each(function(myModel, myIndex){
myModel.itemOne = itemOne;
myModel.itemTwo = itemTwo;
myModel.itemThree = itemThree;
});
.map()
旨在迭代并创建一个新的结果数组。
.each()
被设计为迭代器(没有创建新数组)。
这两种方法都可以用于普通迭代,但是如果你只使用.each()
进行迭代,我认为代码的意图更清晰,因为这是它的预期和唯一目的。
至于除了创建数组之外的功能差异,jQuery的.each()
允许您通过从回调返回false
来终止迭代。 jQuery的.map()
没有办法终止迭代。
查看jQuery map与每个和https://learn.jquery.com/using-jquery-core/iterating/
总之,这取决于你想做什么。 $.each()
使用相同的数组,而$.map()
返回一个新数组。 传递参数的顺序在$.map()
相反,以匹配ECMAScript 5中可用的本机.map()
方法的顺序。它不是关于如何遍历数组/对象,而是原始数组是否以及如何/ object被修改。 一个加号是使用$.each()
你可以在函数中使用关键字this
来引用数组/对象的当前元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.