2011-06-05 33 views
14

¿Cuál es la diferencia entre $.map y $.grep en jQuery?

Quiero una respuesta simple en la medida de lo posible.

Respuesta

20

Supongo que quiere decir $.grep y $.map. La diferencia es que usamos $.grep para filtrar una matriz mientras usamos $.map para aplicar una función a cada elemento de la matriz.

Aquí es una explicación mucho mejor de lo que puedo hacer:

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

+1

gracias @biggs – tito11

+0

la función de filtro podría ser la función que podríamos aplicar en el 'mapa' para que pudiéramos usar map o grep –

8

$.map método puede ser utilizado como un iterador, pero está destinado a manipular la matriz y devolver una nueva matriz.

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

var items = $.map(items, function(item) { 
    if (item == 'A') 
    return null; 
    return item; 
}); 

artículos ahora es una nueva matriz. ['B','C']

o

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

salida será ['AB', 'B', 'C', 'AB']

$.grep se utiliza para filtrar

var items = $.grep(items, function(item) { 
     return item != 'A'; 
    }); 

artículos es ahora ['B','C']

sin embargo

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

volverá ['A', 'B', 'C', 'A'] ya que no está produciendo cosas nuevas - que reduce el vigente.

Cuestiones relacionadas