Menghapus Duplikat dari Array JavaScript

Menghapus Duplikat dari Array JavaScript
Menghapus Duplikat dari Array JavaScript

Memahami Keunikan Array di JavaScript

Dalam JavaScript, memastikan bahwa array hanya berisi nilai unik dapat menjadi hal yang penting untuk berbagai aplikasi. Meskipun ada beberapa cara untuk mencapai hal ini, metode tertentu mungkin gagal dalam kondisi tertentu, seperti adanya angka nol.

Pada artikel ini, kita akan memeriksa skrip prototipe untuk menghapus duplikat dari array. Kami akan mengidentifikasi masalah yang bernilai nol dan membandingkannya dengan solusi yang lebih andal. Dengan memahami perbedaan ini, Anda akan mempelajari cara menangani keunikan array dengan lebih efektif di JavaScript.

Memerintah Keterangan
new Set() Membuat objek Set, yang memungkinkan Anda menyimpan nilai unik jenis apa pun.
[...new Set(array)] Menggunakan operator spread untuk mengubah Set kembali menjadi array nilai unik.
Array.prototype.getUnique Mendefinisikan metode baru pada prototipe Array untuk mengekstrak nilai unik dari array.
uniqueElements[this[i]] = this[i] Menyimpan setiap elemen sebagai kunci dalam suatu objek untuk memastikan keunikan.
for (let key in uniqueElements) Ulangi kunci objek UniqueElements untuk membuat larik hasil.
const uniqueElements = {} Menginisialisasi objek kosong untuk menyimpan elemen unik sebagai kunci.

Cara Menghapus Duplikat di Array JavaScript

Script pertama yang kami sajikan menggunakan new Set() objek dalam JavaScript untuk memastikan keunikan array. A Set adalah kumpulan nilai yang setiap nilainya harus unik. Dengan meneruskan array ke a Set, kami secara otomatis memfilter nilai duplikat. Untuk mengonversi Set kembali ke array, kami menggunakan operator spread [...new Set(array)]. Metode ini ringkas dan memanfaatkan fungsionalitas bawaan JavaScript untuk mencapai hasil yang diinginkan secara efisien.

Misalnya, jika Anda memiliki array dengan angka duplikat, termasuk nol, seperti [1, 2, 2, 3, 4, 4, 5, 0, 0], fungsinya getUniqueValues(array) akan mengembalikan array dengan hanya nilai unik: [1, 2, 3, 4, 5, 0]. Metode ini mudah dan menangani semua jenis elemen, termasuk nol, tanpa masalah apa pun.

Metode Kustom untuk Memastikan Nilai Array Unik

Skrip kedua mendefinisikan metode khusus di Array.prototype ditelepon getUnique. Metode ini menggunakan objek untuk melacak elemen unik. Di dalam metode ini, pertama-tama kita menginisialisasi objek kosong const uniqueElements = {} dan array kosong const resultArray = []. Kami kemudian mengulangi array menggunakan a for loop, menyimpan setiap elemen sebagai kunci di uniqueElements objek untuk memastikan semua kunci unik.

Setelah mengisi uniqueElements objek, kami menggunakan yang lain for...in loop untuk mengulangi kunci objek dan memasukkan setiap kunci unik ke dalam resultArray. Akhirnya, metode ini kembali resultArray, yang hanya berisi nilai unik. Metode ini sangat bermanfaat karena menunjukkan cara mengelola dan menerapkan keunikan secara manual tanpa hanya mengandalkan fungsi bawaan, sehingga memberikan pemahaman lebih dalam tentang penanganan struktur data di JavaScript.

Memastikan Nilai Unik dalam Array JavaScript

Metode JavaScript Menggunakan Set

function getUniqueValues(array) {
  return [...new Set(array)];
}

// Example usage:
const numbers = [1, 2, 2, 3, 4, 4, 5, 0, 0];
const uniqueNumbers = getUniqueValues(numbers);
console.log(uniqueNumbers);

Menghapus Duplikat dalam Array dengan Fungsi Kustom

Metode Prototipe Kustom JavaScript

Array.prototype.getUnique = function() {
  const uniqueElements = {};
  const resultArray = [];
  for (let i = 0; i < this.length; i++) {
    uniqueElements[this[i]] = this[i];
  }
  for (let key in uniqueElements) {
    resultArray.push(uniqueElements[key]);
  }
  return resultArray;
};

// Example usage:
const numbers = [1, 2, 2, 3, 4, 4, 5, 0, 0];
const uniqueNumbers = numbers.getUnique();
console.log(uniqueNumbers);

Pelajari Lebih Dalam Teknik Deduplikasi Array

Teknik penting lainnya untuk menghapus duplikat dari array di JavaScript adalah penggunaan filter metode yang dikombinasikan dengan indexOf metode. Metode ini melibatkan perulangan pada array dan hanya menyertakan elemen yang kemunculan pertamanya cocok dengan posisinya saat ini. Hal ini memastikan bahwa setiap elemen disertakan hanya sekali dalam array yang dihasilkan, sehingga secara efektif menghilangkan duplikat.

Misalnya, pertimbangkan sebuah array [1, 2, 2, 3, 4, 4, 5, 0, 0]. Dengan menggunakan array.filter((item, index) => array.indexOf(item) === index), Anda dapat memfilter nilai duplikat. Pendekatan ini bekerja dengan memeriksa apakah indeks elemen saat ini sama dengan indeks kemunculan pertama elemen tersebut. Jika ya, elemen tersebut unik dan disertakan dalam array baru.

Pertanyaan Umum Tentang Deduplikasi Array JavaScript

  1. Apa cara paling efisien untuk menghapus duplikat dari array?
  2. Menggunakan sebuah Set adalah salah satu cara paling efisien karena memiliki kompleksitas waktu O(n).
  3. Bisakah saya menggunakan filter metode untuk menghapus duplikat?
  4. Ya, menggabungkan filter dengan indexOf adalah pendekatan umum untuk menghapus duplikat.
  5. Mengapa prototype metode gagal dengan nol?
  6. Skrip asli gagal dengan nol karena for (i = 0; e = this[i]; i++) berhenti di nol, menafsirkannya sebagai salah.
  7. Bagaimana saya bisa menangani tipe data yang berbeda dalam array untuk keunikan?
  8. Menggunakan sebuah Set menangani tipe data yang berbeda secara efisien dengan memastikan setiap nilai unik.
  9. Apa manfaat menggunakan new Set() dibandingkan metode lain?
  10. new Set() ringkas dan menangani semua jenis nilai tanpa memerlukan logika tambahan.
  11. Bisakah saya menambahkan metode unik ke semua array?
  12. Ya, dengan menambahkan metode ke Array.prototype, Anda dapat membuatnya tersedia untuk semua array.
  13. Apa kerugian dari memodifikasi Array.prototype?
  14. Memodifikasi Array.prototype dapat menimbulkan konflik jika skrip lain juga memodifikasinya.
  15. Apakah ada cara untuk memastikan keunikan tanpa mengubah susunan aslinya?
  16. Ya, metode seperti new Set() Dan filter buat array baru, pertahankan yang asli.

Pemikiran Akhir tentang Deduplikasi Array JavaScript

Dengan memahami berbagai teknik untuk menghapus duplikat dari array, Anda dapat memilih metode yang paling sesuai untuk kasus penggunaan spesifik Anda. Apakah menggunakan Set untuk kesederhanaan dan efisiensi atau metode khusus untuk pemahaman yang lebih dalam, menguasai pendekatan ini akan meningkatkan keterampilan JavaScript Anda. Menangani kasus khusus, seperti nilai nol, akan memastikan solusi Anda kokoh.