Maison > développement back-end > tutoriel php > Comment vérifier si un tableau contient un autre tableau en JavaScript ?

Comment vérifier si un tableau contient un autre tableau en JavaScript ?

Patricia Arquette
Libérer: 2024-11-19 20:03:03
original
234 Les gens l'ont consulté

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

Pouvez-vous vérifier si un tableau en contient un autre en JavaScript ?

Similaire à la fonction in_array() de PHP, qui compare les valeurs d'un tableau avec un autre, JavaScript n'a pas d'équivalent intégré pour cela fonctionnalité.

Solutions de contournement

Pour combler cette lacune, les bibliothèques JavaScript et les packages d'utilitaires populaires fournissent leurs propres implémentations. $.inArray() de jQuery et Array.indexOf() de Prototype en sont des exemples notables. L'implémentation de jQuery est simple :

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

Comparaison de tableaux

Cependant, il est important de noter que in_array() de PHP détermine également si un tableau se trouve dans un autre. Le code de Chris et Alex ne reproduit pas ce comportement. Au lieu de cela, le code de Chris est similaire à array_intersect de PHP, tandis que celui d'Alex est la version officielle de indexOf de Prototype.

Pour implémenter in_array() de PHP pour les tableaux imbriqués, la fonction personnalisée suivante peut être utilisée :

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;
}
Copier après la connexion

InArray amélioré() Fonction :

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;
}
Copier après la connexion

Exemple d'utilisation

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');
}
Copier après la connexion

Sortie :

ph was found
o was found
Copier après la connexion

Veuillez noter que l'extension de la Le prototype de tableau n'est pas recommandé, car il peut avoir des conséquences inattendues.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal