Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Cari Perbezaan Antara Dua Tatasusunan dalam JavaScript?

Bagaimanakah Saya Boleh Cari Perbezaan Antara Dua Tatasusunan dalam JavaScript?

Barbara Streisand
Barbara Streisandasal
2024-12-20 02:39:16224semak imbas

How Can I Find the Difference Between Two Arrays in JavaScript?

Menentukan Perbezaan antara Dua Tatasusunan dalam JavaScript

Pengenalan:

Menentukan perbezaan antara dua tatasusunan ialah tugas biasa dalam JavaScript. Perbezaan boleh ditakrifkan sebagai unsur-unsur yang terdapat dalam satu tatasusunan tetapi tidak dalam tatasusunan yang lain. Artikel ini menyediakan beberapa pendekatan untuk mencapai matlamat ini menggunakan kaedah terbina dalam JavaScript.

Persimpangan dan Perbezaan:

Satu pendekatan ialah menggunakan Array.prototype.includes() kaedah. Ia boleh digunakan untuk kedua-dua mencari persilangan (elemen biasa) dan perbezaan antara dua tatasusunan.

Persimpangan:

let intersection = arr1.filter(x => arr2.includes(x));

Penapis ini menghasilkan tatasusunan yang mengandungi elemen yang biasa kepada kedua-dua arr1 dan arr2.

Perbezaan:

let difference = arr1.filter(x => !arr2.includes(x));

Penapis ini mencipta tatasusunan dengan elemen yang terdapat hanya dalam arr1, bukan dalam arr2.

Perbezaan Simetri:

Selain itu, seseorang mungkin ingin menentukan "eksklusif atau" (perbezaan simetri) antara dua tatasusunan, yang terdiri daripada elemen unik daripada kedua-dua tatasusunan. Ini boleh diperolehi dengan menggabungkan perbezaan kedua-dua tatasusunan:

let symDifference = arr1.filter(x => !arr2.includes(x))
                        .concat(arr2.filter(x => !arr1.includes(x)));

Peningkatan:

Untuk kebolehgunaan yang dipertingkatkan, adalah mungkin untuk menentukan kaedah tersuai untuk Tatasusunan. prototaip yang membenarkan penggunaan langsung pada tatasusunan:

Array.prototype.diff = function(arr2) { 
  return this.filter(x => !arr2.includes(x)); 
}

Dengan peningkatan ini, seseorang boleh dengan mudah menentukan perbezaan:

[1, 2, 3].diff([2, 3]) // [1]

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Cari Perbezaan Antara Dua Tatasusunan dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn