Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Membandingkan Tatasusunan dengan Berkesan dalam JavaScript?

Bagaimana untuk Membandingkan Tatasusunan dengan Berkesan dalam JavaScript?

DDD
Lepaskan: 2024-12-22 02:49:15
asal
865 orang telah melayarinya

How to Effectively Compare Arrays in JavaScript?

Membandingkan Tatasusunan dalam JavaScript

Tatasusunan dalam JavaScript ialah struktur data penting untuk mengatur dan menyimpan koleksi item. Apabila bekerja dengan tatasusunan, selalunya menjadi perlu untuk membandingkannya untuk kesaksamaan atau untuk menentukan sama ada ia mengandungi unsur yang serupa.

Operator == dan JSON.stringify

Secara intuitif , seseorang mungkin berfikir bahawa pengendali kesamaan (==) boleh digunakan untuk membandingkan tatasusunan. Walau bagaimanapun, pengendali ini menyemak kesamaan rujukan, bermakna ia menentukan sama ada dua pembolehubah merujuk kepada objek yang sama dalam ingatan. Tatasusunan disimpan sebagai objek, jadi operator == akan mengembalikan palsu walaupun tatasusunan mengandungi elemen yang sama.

Satu lagi pendekatan biasa ialah menggunakan kaedah JSON.stringify untuk menukar tatasusunan kepada rentetan. Dengan membandingkan rentetan yang terhasil, kesaksamaan boleh ditentukan. Walaupun kaedah ini berfungsi, kaedah ini tidak cekap untuk tatasusunan atau tatasusunan yang lebih besar yang mengandungi objek bersarang.

Fungsi Perbandingan Tatasusunan Tersuai

Pendekatan yang lebih cekap dan fleksibel adalah dengan mencipta tersuai fungsi yang membandingkan elemen tatasusunan dan menyemak kesamaan. Begini cara ia boleh dilaksanakan:

Array.prototype.equals = function (array) {
  if (!array) {
    return false;
  }

  if (this === array) {
    return true;
  }

  if (this.length != array.length) {
    return false;
  }

  for (let i = 0; i < this.length; i++) {
    if (this[i] instanceof Array && array[i] instanceof Array) {
      if (!this[i].equals(array[i])) {
        return false;
      }
    } else if (this[i] != array[i]) {
      return false;
    }
  }

  return true;
};
Salin selepas log masuk

Fungsi ini mengendalikan tatasusunan bersarang dengan membandingkannya secara rekursif. Ia juga membenarkan perbandingan tatasusunan yang mengandungi objek dengan menyemak nilainya.

Penggunaan

Untuk menggunakan fungsi yang sama, hanya panggilnya pada objek tatasusunan:

[1, 2, [3, 4]].equals([1, 2, [3, 2]]) === false;
[1, "2,3"].equals([1, 2, 3]) === false;
[1, 2, [3, 4]].equals([1, 2, [3, 4]]) === true;
[1, 2, 1, 2].equals([1, 2, 1, 2]) === true;
Salin selepas log masuk

Membandingkan Objek

Ia penting untuk ambil perhatian bahawa fungsi equals direka untuk membandingkan tatasusunan. Jika anda perlu membandingkan objek, anda memerlukan fungsi perbandingan objek berasingan yang mengendalikan ciri khusus objek.

Atas ialah kandungan terperinci Bagaimana untuk Membandingkan Tatasusunan dengan Berkesan dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan