当没有返回值时,.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;
});
答案 0 :(得分:14)
.map()
旨在迭代并创建一个新的结果数组。
.each()
被设计为迭代器(没有创建新数组)。
任何一个都可以用于普通迭代,但是如果你使用.each()
进行迭代,我会认为代码的意图更清晰,因为这是它的预期和唯一用途。
至于除了创建数组之外的功能差异,jQuery' .each()
允许您通过从回调中返回false
来终止迭代。 jQuery' s .map()
没有办法终止迭代。
答案 1 :(得分:3)
结帐jQuery map vs. each和https://learn.jquery.com/using-jquery-core/iterating/
总之,这取决于你想做什么。 $.each()
使用相同的数组,而$.map()
返回一个新数组。传递参数的顺序在$.map()
中相反,以匹配ECMAScript 5中可用的本机.map()
方法的顺序。它不是关于如何遍历数组/对象的全部,而是以及如何修改原始数组/对象。加号为$.each()
,您可以使用函数中的关键字this
来引用数组/对象的当前元素。