jQuery中$ .map和$ .grep有什么区别

时间:2011-06-05 19:01:32

标签: javascript jquery

jQuery中$.map$.grep之间有什么区别?

我想尽可能简单的回答。

2 个答案:

答案 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'] 因为它没有产生新东西 - 它减少了现有的东西。