Heim >Backend-Entwicklung >PHP-Tutorial >Wie überprüfe ich in JavaScript, ob ein Array ein anderes Array enthält?

Wie überprüfe ich in JavaScript, ob ein Array ein anderes Array enthält?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-19 20:03:03249Durchsuche

How to Check if an Array Contains Another Array in JavaScript?

Können Sie in JavaScript überprüfen, ob ein Array ein anderes enthält?

Ähnlich wie die in_array()-Funktion von PHP, die Werte aus einem Array miteinander vergleicht Zum anderen verfügt JavaScript hierfür nicht über ein integriertes Äquivalent Funktionalität.

Problemumgehungen

Um diese Lücke zu schließen, bieten beliebte JavaScript-Bibliotheken und Dienstprogrammpakete ihre eigenen Implementierungen. Bemerkenswerte Beispiele sind $.inArray() von jQuery und Array.indexOf() von Prototype. Die Implementierung von jQuery ist unkompliziert:

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

Array-Vergleich

Es ist jedoch wichtig zu beachten, dass in_array() von PHP auch bestimmt, ob sich ein Array in einem anderen befindet. Der Code von Chris und Alex reproduziert dieses Verhalten nicht. Stattdessen ähnelt der Code von Chris dem array_intersect von PHP, während der von Alex die offizielle Version von indexOf von Prototype ist.

Um PHPs in_array() für verschachtelte Arrays zu implementieren, kann die folgende benutzerdefinierte Funktion verwendet werden:

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

Erweiterte inArray()-Funktion:

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

Beispiel Verwendung

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

Ausgabe:

ph was found
o was found

Bitte beachten Sie, dass eine Erweiterung des Array-Prototyps nicht empfohlen wird, da dies unbeabsichtigte Folgen haben kann.

Das obige ist der detaillierte Inhalt vonWie überprüfe ich in JavaScript, ob ein Array ein anderes Array enthält?. 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