Tôi đã tự hỏi về sự khác biệt giữa Grep và Filter:
Bộ lọc:
Giảm tập hợp các phần tử phù hợp thành những phần tử phù hợp với bộ chọn hoặc vượt qua kiểm tra của hàm.
Grep:
Tìm các phần tử của một mảng thỏa mãn một chức năng lọc. Mảng ban đầu không bị ảnh hưởng.
đồng ý.
vì vậy nếu tôi làm điều này trong 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);
});
Tôi cũng có thể làm:
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);
});
Trong cả hai trường hợp, tôi vẫn có thể truy cập vào mảng ban đầu ...
vậy ... sự khác biệt là ở đâu?
.grep()
là một phương thức trợ giúp để xử lý mảng chung, trong khi.filter()
thường được sử dụng để thu hẹp các lựa chọn phần tử. Tôi không nghĩ rằng.grep()
trả về một đối tượng jQuery và bạn không thể chuỗi nó (jQuery.fn.grep
không tồn tại).