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

Tar*_*ied 14 javascript jquery

$.map$.grepjQuery有什么区别?

我想尽可能简单的回答.

IAm*_*rey 21

我会假设你的意思$.grep$.map.不同之处在于我们使用$.grep过滤数组,同时我们使用$.map函数将数组应用于数组中的每个项目.

这是一个比我能做的更好的解释:

http://onwebdev.blogspot.com/2011/03/jquery-grep-and-map-example-and-syntax.html


Mat*_*ius 10

$.map 方法可以用作迭代器,但是用于操作数组并返回一个新数组.

var items = ['A','B','C','A'];    

var items = $.map(items, function(item) {
  if (item == 'A') 
    return null;
  return item;
});
Run Code Online (Sandbox Code Playgroud)

items现在是新数组. ['B','C']

要么

var items = $.map(items, function(item) {
  if (item == 'A') 
    return 'A'+'B';
  return item;
});
Run Code Online (Sandbox Code Playgroud)

输出将是 ['AB', 'B', 'C', 'AB']

$.grep 用于过滤

var items = $.grep(items, function(item) {
      return item != 'A';
    });
Run Code Online (Sandbox Code Playgroud)

物品现在 ['B','C']

然而

var items = $.grep(items, function(item) {
      if (item == 'A') 
        return 'A'+'B';
      return item;
    })
Run Code Online (Sandbox Code Playgroud)

将返回,['A', 'B', 'C', 'A'] 因为它不会产生新的东西 - 它减少了现有的.