Bolehkah JavaScript Meniru Fungsi in_array() PHP?
Dalam PHP, in_array() membandingkan nilai dengan nilai dalam tatasusunan, mengembalikan benar jika padanan ditemui. JavaScript tidak mempunyai persamaan langsung, tetapi perpustakaan yang dibangunkan komuniti menyediakan kefungsian yang serupa.
Pemadanan Instance Menggunakan jQuery atau Prototaip
InArray jQuery dan Array Prototype.indexOf menangani cabaran ini dengan membandingkan secara berulang nilai:
// jQuery implementation: function inArray(needle, haystack) { for (var i = 0; i < haystack.length; i++) { if (haystack[i] == needle) return true; } return false; }
Perbandingan Tatasusunan
Untuk senario yang lebih kompleks, di mana anda perlu membandingkan keseluruhan tatasusunan, fungsi tersuai boleh memenuhi keperluan ini:
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; } 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; }
Penggunaan
// Test the custom function: var a = [['p', 'h'], ['p', 'r'], 'o']; if (inArray(['p', 'h'], a)) { console.log('ph was found'); } if (inArray(['f', 'i'], a)) { console.log('fi was found'); } if (inArray('o', a)) { console.log('o was found'); }
Atas ialah kandungan terperinci Adakah Terdapat Setara JavaScript dengan in_array() PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!