กรองอาร์เรย์แรก ให้เหลือเฉพาะค่าที่ ไม่อยู่ ในอาร์เรย์ที่สอง (Difference / Exclusion)
ตัวอย่าง
arr1 = [4, 23, 7, 6, 3, 6, 4, 3, 56, 4] arr2 = [4, 56, 23] Result: [7, 6, 3, 6, 3]
ตัวอย่างโค้ด
const filterArray = (arr1, arr2) => arr1.filter(el => !arr2.includes(el)); console.log(filterArray( [4, 23, 7, 6, 3, 6, 4, 3, 56, 4], [4, 56, 23] ));
ผลลัพธ์
[ 7, 6, 3, 6, 3 ]
Optimization สำหรับ Array ใหญ่
const filterArray = (arr1, arr2) => {
const exclude = new Set(arr2); // O(1) lookup
return arr1.filter(el => !exclude.has(el));
};
แปลง arr2 เป็น Set ก่อน ทำให้ includes (O(n)) กลายเป็น has (O(1))
Overall: O(n+m) แทน O(n×m)