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!