Maison >développement back-end >tutoriel php >Existe-t-il un équivalent JavaScript de in_array() de PHP ?

Existe-t-il un équivalent JavaScript de in_array() de PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-13 06:16:02443parcourir

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

JavaScript peut-il imiter la fonctionnalité in_array() de PHP ?

En PHP, in_array() compare une valeur à celles d'un tableau, renvoyant true si une correspondance est trouvée. JavaScript n'a pas d'équivalent direct, mais les bibliothèques développées par la communauté offrent des fonctionnalités analogues.

Correspondance d'instances à l'aide de jQuery ou d'un prototype

inArray de jQuery et Array.indexOf de Prototype relèvent ce défi en comparer les valeurs de manière itérative :

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

Comparaison de tableaux

Pour des scénarios plus complexes, dans lesquels vous devez comparer des tableaux entiers, une fonction personnalisée peut répondre à ce besoin :

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

Utilisation

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

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!

Déclaration:
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