jqueryにおけるmap関数とeach関数の違い
788 ワード
jqueryのeach関数とmap関数の使い方はあまり悪くないように見えますが、実は少し違いがあります.
重要な違いの一つは、eachが元の配列を返し、新しい配列を作成しないことです.mapメソッドは新しい配列を返します.必要なしにmapを使用すると、メモリの無駄になる可能性があります.
例:
eachを使用すると、元のitems配列が変更されますが、mapを使用するとitemsは変更されず、新しい配列が作成されます.
例:
配列を削除する必要がある場合も同様であるため、削除時に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を誤って使用すると深刻な結果になります.