Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การกรองจำนวนเฉพาะออกจากอาร์เรย์ - JavaScript

ฟังก์ชันนี้กรองอาร์เรย์ให้เหลือเฉพาะตัวเลขที่ไม่ใช่จำนวนเฉพาะ (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 ช้า สำหรับตัวเลขใหญ่ควรปรับปรุง