Zastanawiałem się nad różnicami między Grep i Filter:
Filtruj:
Zmniejsz zestaw dopasowanych elementów do tych, które pasują do selektora lub przeprowadź test funkcji.
Grep:
Znajduje elementy tablicy, które spełniają funkcję filtrującą. Nie ma to wpływu na oryginalną tablicę.
ok.
więc jeśli zrobię to w 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);
});
Mogłem też:
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);
});
W obu sytuacjach nadal mam dostęp do oryginalnej tablicy ...
więc ... gdzie jest różnica?
.grep()jest to metoda pomocnicza do ogólnego przetwarzania tablic, podczas gdy.filter()jest zwykle używana do zawężania wyboru elementów. Myślę, że nie.grep()zwraca obiektu jQuery i nie można go połączyć w łańcuch (jQuery.fn.grepnie istnieje).