ฉันสงสัยเกี่ยวกับความแตกต่างระหว่าง Grep และ Filter:
ตัวกรอง:
ลดชุดขององค์ประกอบที่ตรงกันให้เป็นชุดที่ตรงกับตัวเลือกหรือผ่านการทดสอบฟังก์ชัน
Grep:
ค้นหาองค์ประกอบของอาร์เรย์ที่ตรงตามฟังก์ชันตัวกรอง อาร์เรย์เดิมไม่ได้รับผลกระทบ
ตกลง.
ดังนั้นถ้าฉันทำสิ่งนี้ใน 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);
});
ฉันสามารถทำได้:
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);
});
ในทั้งสองสถานการณ์ฉันยังคงสามารถเข้าถึงอาร์เรย์เดิมได้ ...
แล้ว ... ต่างกันตรงไหน?
.grep()เป็นวิธีการช่วยเหลือสำหรับการประมวลผลอาร์เรย์ทั่วไปในขณะที่.filter()โดยทั่วไปจะใช้เพื่อ จำกัด การเลือกองค์ประกอบให้แคบลง ฉันไม่คิดว่า.grep()จะส่งคืนวัตถุ jQuery และคุณไม่สามารถเชื่อมโยงได้ (jQuery.fn.grepไม่มีอยู่)