jQuery中$.map
和$.grep
之间有什么区别?
我想尽可能简单的回答。
答案 0 :(得分:21)
我假设您的意思是$.grep
和$.map
。不同之处在于,当我们使用$.grep
将函数应用于数组中的每个项目时,我们使用$.map
来过滤数组。
这是一个比我能做得更好的解释:
http://onwebdev.blogspot.com/2011/03/jquery-grep-and-map-example-and-syntax.html
答案 1 :(得分:10)
$.map
方法可以用作迭代器,但是用于操作数组并返回一个新数组。
var items = ['A','B','C','A'];
var items = $.map(items, function(item) {
if (item == 'A')
return null;
return item;
});
项目现在是新阵列。 ['B','C']
或
var items = $.map(items, function(item) {
if (item == 'A')
return 'A'+'B';
return item;
});
输出为['AB', 'B', 'C', 'AB']
$.grep
用于过滤
var items = $.grep(items, function(item) {
return item != 'A';
});
项目现在是['B','C']
然而
var items = $.grep(items, function(item) {
if (item == 'A')
return 'A'+'B';
return item;
})
将返回['A', 'B', 'C', 'A']
因为它没有产生新东西 - 它减少了现有的东西。