Rumah >pembangunan bahagian belakang >tutorial php >Adakah Terdapat Setara JavaScript dengan in_array() PHP?

Adakah Terdapat Setara JavaScript dengan in_array() PHP?

Susan Sarandon
Susan Sarandonasal
2024-11-13 06:16:02444semak imbas

Is There a JavaScript Equivalent of PHP's in_array()?

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!

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