Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mencari Perbezaan Antara Dua Tatasusunan Objek JavaScript dengan Cekap?

Bagaimanakah Saya Boleh Mencari Perbezaan Antara Dua Tatasusunan Objek JavaScript dengan Cekap?

Linda Hamilton
Linda Hamiltonasal
2024-12-09 10:04:08955semak imbas

How Can I Efficiently Find the Differences Between Two JavaScript Object Arrays?

Mencari Perbezaan Antara Dua Tatasusunan Objek dalam JavaScript

Dalam JavaScript, anda mungkin menghadapi keperluan untuk menentukan perbezaan antara dua tatasusunan objek . Sebagai contoh, anda mungkin mempunyai dua set hasil yang anda ingin bandingkan dan mengenal pasti objek yang hanya wujud dalam satu tetapi bukan yang lain.

Untuk mencapai ini, anda boleh memanfaatkan gabungan fungsi JS asli dan tersuai fungsi perbandingan. Begini cara anda boleh melakukannya:

  1. Tentukan Fungsi Perbandingan:

    const isSameUser = (a, b) => a.value === b.value && a.display === b.display;

Fungsi ini akan menentukan sama ada dua objek adalah sama berdasarkan 'nilai' dan 'paparan' mereka sifat.

  1. Gunakan Fungsi 'onlyInLeft':

    const onlyInLeft = (left, right, compareFunction) => 
      left.filter(leftValue =>
     !right.some(rightValue => 
       compareFunction(leftValue, rightValue)));

Fungsi ini mengambil tiga argumen: kiri tatasusunan, tatasusunan yang betul, dan fungsi perbandingan. Ia menapis keluar elemen daripada tatasusunan kiri yang tidak mempunyai elemen sepadan dalam tatasusunan kanan berdasarkan fungsi perbandingan yang ditentukan.

  1. Gunakan Fungsi 'onlyInLeft' untuk Mencari Perbezaan :

    const onlyInA = onlyInLeft(a, b, isSameUser);
    const onlyInB = onlyInLeft(b, a, isSameUser);

Kod ini menggunakan fungsi 'onlyInLeft' kepada dua tatasusunan, menggunakan fungsi perbandingan untuk menentukan perbezaan.

  1. Buat Keputusan Akhir:

    const result = [...onlyInA, ...onlyInB];

Akhir sekali, tatasusunan 'hasil' mengandungi objek yang terdapat dalam satu tatasusunan tetapi tidak dalam tatasusunan yang lain.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari Perbezaan Antara Dua Tatasusunan Objek JavaScript dengan Cekap?. 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