Ich habe mich über die Unterschiede zwischen Grep und Filter gewundert:
Filter:
Reduzieren Sie den Satz übereinstimmender Elemente auf diejenigen, die dem Selektor entsprechen, oder bestehen Sie den Funktionstest.
Grep:
Findet die Elemente eines Arrays, die eine Filterfunktion erfüllen. Das ursprüngliche Array ist nicht betroffen.
OK.
Also, wenn ich das in GREP mache:
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);
});
Ich könnte auch tun:
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);
});
In beiden Situationen kann ich immer noch auf das ursprüngliche Array zugreifen ...
Also ... wo ist der Unterschied?
.grep()
ist eine Hilfsmethode für die allgemeine Array-Verarbeitung, während sie.filter()
normalerweise zum Eingrenzen der Elementauswahl verwendet wird. Ich glaube nicht, dass.grep()
ein jQuery-Objekt zurückgegeben wird, und Sie können es nicht verketten (jQuery.fn.grep
existiert nicht).