Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk menyemak sama ada Array Mengandungi Satu Lagi Array dalam JavaScript?

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

Patricia Arquette
Patricia Arquetteasal
2024-11-19 20:03:03253semak imbas

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;
}

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;
}

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;
}

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');
}

Output:

ph was found
o was found

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!

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