繁体   English   中英

jQuery .each()与.map()无需返回

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM