Apps Artificial Intelligence CSS DevOps Go JavaScript Laravel Linux MongoDB MySQL PHP Python Rust Vue

Menghapus Duplikat pada Array di JavaScript: Berbagai Metode

1 min read .
Menghapus Duplikat pada Array di JavaScript: Berbagai Metode

Dalam pengembangan software, seringkali kita perlu menghapus elemen duplikat dari array. JavaScript menyediakan beberapa cara untuk melakukannya, tergantung apakah kamu ingin menghapus duplikat berdasarkan satu atau beberapa properti, atau mempertahankan elemen terakhir yang muncul. Di sini kita akan membahas berbagai metode menggunakan filter() dan pendekatan lainnya.

1. Menghapus Duplikat Berdasarkan ID Unik

Jika array terdiri dari objek dengan properti ID unik, kita bisa menghapus duplikat berdasarkan ID tersebut. Hanya satu objek dengan ID yang sama yang akan dipertahankan.

const arr = [
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' },
  { id: 1, name: 'Alice' },
  { id: 3, name: 'Charlie' }
];

const uniqueById = arr.filter((v, i, a) => a.findIndex(t => t.id === v.id) === i);

console.log(uniqueById);

2. Menghapus Duplikat Berdasarkan Beberapa Properti

Untuk menghapus duplikat berdasarkan kombinasi beberapa properti, misalnya place dan name, gunakan pendekatan serupa:

const arr = [
  { id: 1, place: 'Park', name: 'Alice' },
  { id: 2, place: 'Library', name: 'Bob' },
  { id: 1, place: 'Park', name: 'Alice' },
  { id: 3, place: 'Café', name: 'Charlie' }
];

const uniqueByPlaceAndName = arr.filter((v, i, a) =>
  a.findIndex(t => t.place === v.place && t.name === v.name) === i
);

console.log(uniqueByPlaceAndName);

3. Menghapus Duplikat Berdasarkan Semua Properti

Untuk menghapus duplikat berdasarkan seluruh properti objek, kita bisa mengubah objek menjadi string JSON untuk perbandingan:

const arr = [
  { id: 1, name: 'Alice', age: 25 },
  { id: 2, name: 'Bob', age: 30 },
  { id: 1, name: 'Alice', age: 25 },
  { id: 3, name: 'Charlie', age: 35 }
];

const uniqueByAllProperties = arr.filter((v, i, a) =>
  a.findIndex(t => JSON.stringify(t) === JSON.stringify(v)) === i
);

console.log(uniqueByAllProperties);

4. Mempertahankan Elemen Terakhir

Jika ingin mempertahankan elemen terakhir dari duplikat, kita bisa membalik array, menghapus duplikat, lalu membaliknya kembali:

const arr = [
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' },
  { id: 1, name: 'Alice' },
  { id: 3, name: 'Charlie' }
];

const keepLastOccurrence = arr.slice().reverse().filter((v, i, a) =>
  a.findIndex(t => t.id === v.id) === i
).reverse();

console.log(keepLastOccurrence);

5. Kesimpulan

Mengelola duplikat di array JavaScript bisa dilakukan dengan berbagai cara. Dengan filter(), kita bisa menghapus duplikat berdasarkan satu properti, beberapa properti, semua properti, atau mempertahankan elemen terakhir. Pilih metode yang paling sesuai untuk menjaga data tetap bersih dan konsisten.

Lihat Juga

chevron-up