ฟังก์ชันนี้กรองอาร์เรย์ให้เหลือเฉพาะตัวเลขที่ไม่ใช่จำนวนเฉพาะ (non-prime)
ตัวอย่าง
Input: [34, 56, 3, 56, 4, 343, 68, 56, 34, 87, 8, 45, 34] Output: [34, 56, 56, 4, 343, 68, 56, 34, 87, 8, 45, 34] (ตัด 3 ออก)
ตัวอย่างโค้ด
const arr = [34, 56, 3, 56, 4, 343, 68, 56, 34, 87, 8, 45, 34];
const isPrime = n => {
if (n === 1) return false;
if (n === 2) return true;
for (let x = 2; x < n; x++) {
if (n % x === 0) return false;
}
return true;
};
const filterPrime = arr => arr.filter(el => !isPrime(el));
console.log(filterPrime(arr));
การทำงาน
filter()สร้างอาร์เรย์ใหม่เฉพาะสมาชิกที่ผ่านเงื่อนไข!isPrime(el)เก็บเฉพาะ non-prime
ผลลัพธ์
[ 34, 56, 56, 4, 343, 68, 56, 34, 87, 8, 45, 34 ]
หมายเหตุ: isPrime ใช้ trial division ช้า สำหรับตัวเลขใหญ่ควรปรับปรุง