jquery中的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]
使用each時,改變的還是原來的items數組,而使用map時,不改變items,只是新建一個新的數組。
例如:
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]
當需要刪除陣列時也是如此,所以刪除時錯誤使用each或map後果還是蠻嚴重的。