jqueryにおけるmap関数とeach関数の違い


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を誤って使用すると深刻な結果になります.