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
Freigeben: 2024-11-19 20:03:03
Original
241 Leute haben es durchsucht

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;
}
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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');
}
Nach dem Login kopieren

Ausgabe:

ph was found
o was found
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage