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) {});