jquery中的each函數(shù)和map函數(shù)的用法看起來差不多,但其實還是有一點區(qū)別的。
其中一個重要的區(qū)別是,each返回的是原來的數(shù)組,并不會新創(chuàng)建一個數(shù)組。而map方法會返回一個新的數(shù)組。如果在沒有必要的情況下使用map,則有可能造成內(nèi)存浪費。
例如:
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數(shù)組,而使用map時,不改變items,只是新建一個新的數(shù)組。
例如:
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]當需要對數(shù)組進行刪除時也是如此,所以刪除時錯誤使用each或map后果還是蠻嚴重的。
新聞熱點
疑難解答