88 votes

Grep vs Filtre en jQuery?

Je me demandais sur les différences entre Grep et Filtre :

Filtre :

Réduire l'ensemble des éléments qui correspondent à ceux qui correspondent au sélecteur ou passer de la fonction de test.

Grep :

Trouve les éléments d'un tableau qui remplissent un filtre fonction. Le tableau d'origine n'est pas affectée.

ok.

donc, si je fais cela dans GREP :

var arr = [ 1, 9, 3, 8, 6, 1, 5, 9, 4, 7, 3, 8, 6, 9, 1 ];

myNewArray= jQuery.grep(arr, function(n, i){
  return (n != 5 && i > 4);
});

Je pourrais le faire aussi :

 var arr = [ 1, 9, 3, 8, 6, 1, 5, 9, 4, 7, 3, 8, 6, 9, 1 ];

myNewArray= $(arr).filter( function(n, i){
  return (n != 5 && i > 4);
});

Dans les deux cas, je n'ai plus accès à l'original du tableau...

alors...où est la différence ?

139voto

omerkirk Points 1482

Ils fonctionnent de façon similaire, cependant elles diffèrent dans leurs usages.

La fonction de filtre est destiné à être utilisé avec des éléments html, et c'est pourquoi il est chainable une fonction qui retourne un objet jQuery et il accepte des filtres comme ":même", ":impair" ou ":visible", etc. Vous ne pouvez pas le faire avec la commande grep la fonction, qui est destiné à être une fonction d'utilité pour les tableaux.

20voto

gillesc Points 4093

Filtre fait partie de jQuery.fn donc, il est destiné à être utilisé avec le sélecteur $('div').filter où la commande grep est un jQuery outil de méthode (jQuery.grep)

6voto

2astalavista Points 7092

La différence dans son utilisation:

Filtre:

$(selector).filter(selector/function)

Grep:

$.grep(array,function,invert)

Donc, dans votre cas, je préfère utiliser grep() parce que l'utilisation de la matrice de cette façon est inutile: $(arr).

Je suppose que grap fonction est plus rapide, car il n'accepte que les tableaux.

0voto

Tats_innit Points 20575

Hiya hmmm si vous êtes à la recherche pour conceptuelle différence je pense

ici, il est: (s'il vous Plaît laissez-moi savoir si cela aide)

L' $.grep() la méthode supprime les éléments d'un tableau qu'il faut afin que tous les éléments restants passer un test fourni. alors que l' .méthode filter() construit un nouvel objet jQuery à partir d'un sous-ensemble des éléments correspondants. Fournis sélecteur est testé par rapport à chaque élément; tous les éléments correspondant au sélecteur sera inclus dans le résultat.

Filtre De Devis

Étant donné un objet jQuery qui représente un ensemble d'éléments DOM, l' .méthode filter() construit un nouvel objet jQuery à partir d'un sous-ensemble de la les éléments correspondants. Fournis sélecteur est testé par rapport à chaque élément; tous les éléments correspondant au sélecteur seront inclus dans le résultat.

Considérons une page avec une liste simple:

On peut appliquer cette méthode à l'ensemble des éléments de la liste:

$('li').filter(':even').css('background-color', 'red'); Le résultat de cet appel est un fond rouge pour les points 1, 3 et 5, car ils correspondent à le sélecteur (rappel :même et :bizarre l'utilisation de 0 basée sur l'indexation).

[1] http://api.jquery.com/filter/

Grep Devis

L' $.grep() la méthode supprime les éléments d'un tableau que nécessaire afin d' tous les éléments restants passer un test fourni. Le test est une fonction qui est passé d'un élément de tableau et l'index de l'élément dans le tableau. Seulement si le test renvoie vrai sera le point dans le tableau résultat.

La fonction de filtre sera passé deux arguments: la matrice en cours élément et son index. Le filtre de fonction doit retourner true pour inclure l'élément dans le tableau résultat.

[1] http://api.jquery.com/jQuery.grep/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X