Bagaimana untuk menyemak sama ada Array Mengandungi Satu Lagi Array dalam JavaScript?

Patricia Arquette
Lepaskan: 2024-11-19 20:03:03
asal
175 orang telah melayarinya

How to Check if an Array Contains Another Array in JavaScript?

Bolehkah Anda Semak sama ada Array Mengandungi Lain dalam JavaScript?

Serupa dengan fungsi in_array() PHP, yang membandingkan nilai daripada satu tatasusunan terhadap satu lagi, JavaScript tidak mempunyai persamaan terbina dalam untuk fungsi ini.

Penyelesaian

Untuk menangani jurang ini, perpustakaan JavaScript dan pakej utiliti yang popular menyediakan pelaksanaannya sendiri. $.inArray() jQuery dan Array.indexOf() Prototaip adalah contoh yang ketara. Pelaksanaan jQuery adalah mudah:

function inArray(needle, haystack) {
  for (var i = 0; i < haystack.length; i++) {
    if (haystack[i] == needle) return true;
  }
  return false;
}
Salin selepas log masuk

Perbandingan Tatasusunan

Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa in_array() PHP juga menentukan sama ada satu tatasusunan berada dalam tatasusunan yang lain. Kod Chris dan Alex tidak meniru tingkah laku ini. Sebaliknya, kod Chris adalah serupa dengan array_intersect PHP, manakala Alex ialah versi rasmi indexOf Prototaip.

Untuk melaksanakan in_array() PHP untuk tatasusunan bersarang, fungsi tersuai berikut boleh digunakan:

function arrayCompare(a1, a2) {
  if (a1.length != a2.length) return false;
  for (var i = 0; i < a1.length; i++) {
    if (a1[i] !== a2[i]) return false;
  }
  return true;
}
Salin selepas log masuk

Fungsi inArray() Dipertingkat:

function inArray(needle, haystack) {
  for (var i = 0; i < haystack.length; i++) {
    if (typeof haystack[i] == 'object') {
      if (arrayCompare(haystack[i], needle)) return true;
    } else {
      if (haystack[i] == needle) return true;
    }
  }
  return false;
}
Salin selepas log masuk

Contoh Penggunaan

var a = [['p', 'h'], ['p', 'r'], 'o'];

if (inArray(['p', 'h'], a)) {
  alert('ph was found');
}
if (inArray(['f', 'i'], a)) {
  alert('fi was found');
}
if (inArray('o', a)) {
  alert('o was found');
}
Salin selepas log masuk

Output:

ph was found
o was found
Salin selepas log masuk

Sila ambil perhatian bahawa memanjangkan prototaip Array tidak disyorkan, kerana ia boleh menyebabkan akibat yang tidak diingini.

Atas ialah kandungan terperinci Bagaimana untuk menyemak sama ada Array Mengandungi Satu Lagi Array 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan