Heim >Backend-Entwicklung >PHP-Tutorial >Gibt es ein JavaScript-Äquivalent zu PHPs in_array()?

Gibt es ein JavaScript-Äquivalent zu PHPs in_array()?

Susan Sarandon
Susan SarandonOriginal
2024-11-13 06:16:02445Durchsuche

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

Kann JavaScript die in_array()-Funktionalität von PHP nachahmen?

In PHP vergleicht in_array() einen Wert mit denen innerhalb eines Arrays und gibt „true“ zurück wenn eine Übereinstimmung gefunden wird. JavaScript hat kein direktes Äquivalent, aber von der Community entwickelte Bibliotheken bieten analoge Funktionalität.

Instanzabgleich mit jQuery oder Prototype

inArray von jQuery und Array.indexOf von Prototype bewältigen diese Herausforderung, indem sie Werte iterativ vergleichen:

// jQuery implementation:
function inArray(needle, haystack) {
  for (var i = 0; i < haystack.length; i++) {
    if (haystack[i] == needle) return true;
  }
  return false;
}

Array Vergleich

Für komplexere Szenarien, in denen Sie ganze Arrays vergleichen müssen, kann eine benutzerdefinierte Funktion diesen Bedarf erfüllen:

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

Verwendung

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

Das obige ist der detaillierte Inhalt vonGibt es ein JavaScript-Äquivalent zu PHPs in_array()?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn