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!