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

การลบสมาชิกซ้ำออกจากอาร์เรย์โดยสิ้นเชิง - JavaScript

ลบสมาชิกที่ซ้ำกันออกทั้งหมด เก็บเฉพาะสมาชิกที่ปรากฏครั้งเดียว (unique elements)

ตัวอย่าง

Input: [763, 55, 43, 22, 32, 43, 763, 43]
763: 2 ครั้ง, 43: 3 ครั้ง → ลบทิ้ง
55, 22, 32: 1 ครั้ง → เก็บ
Output: [55, 22, 32]

ตัวอย่างโค้ด

const arr = [763, 55, 43, 22, 32, 43, 763, 43];

const deleteDuplicate = (arr) => {
  return arr.filter((item, index, array) => {
    return array.indexOf(item) === array.lastIndexOf(item);
  });
};

console.log(deleteDuplicate(arr));

การทำงาน

  • filter สร้างอาร์เรย์ใหม่
  • indexOf === lastIndexOf → ปรากฏครั้งเดียว (first = last)
  • ซ้ำ → indexOf ≠ lastIndexOf → กรองออก

วิธีที่มีประสิทธิภาพมากกว่า (O(n))

const deleteDuplicate = arr => {
  const freq = new Map();
  for (const v of arr) freq.set(v, (freq.get(v) || 0) + 1);
  return arr.filter(v => freq.get(v) === 1);
};

ผลลัพธ์

[ 55, 22, 32 ]