jqueryの各関数とmap関数の使い方は似ているようですが、実は少し違いがあります。
重要な違いの 1 つは、それぞれが元の配列を返し、新しい配列を作成しないことです。 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を使用すると項目は変更されずに新しい配列が作成されます。
例:
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 を誤って使用すると、非常に深刻な結果が生じます。