each方法是一个不可变的迭代方法,map方法可以用来当做迭代方法用,但是它事实上是操作提供的数组放回一个数组。另外一个重要的事情是each放回原始数组,map则放回一个新数组,如果你过度使map返会新数组,就要考虑到浪费内存的问题。
例如:
var items = [1,2,3,4];
$.each(items, function() {
alert('this is ' + this);
});
var newItems = $.map(items, function(i) {
return i + 1;
});
// newItems is [2,3,4,5]
map也可以用来删除数组中的一项
var items = [0,1,2,3,4,5,6,7,8,9];
var itemsLessThanEqualFive = $.map(items, function(i) {
// removes all items > 5
if (i > 5)
return null;
return i;
});
// itemsLessThanEqualFive = [0,1,2,3,4,5]
map中this是不会映射的,所以要在返回函数中加参数。注意的是map中的参数和each中的参数是相反的。
map(arr, function(elem, index) {});
// versus
each(arr, function(index, elem) {});
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。