Maison >interface Web >js tutoriel >Comment puis-je trouver efficacement l'intersection de deux tableaux en JavaScript ?

Comment puis-je trouver efficacement l'intersection de deux tableaux en JavaScript ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-27 12:44:10160parcourir

How Can I Efficiently Find the Intersection of Two Arrays in JavaScript?

Intersection de tableaux sans effort en JavaScript

L'intersection de tableaux est une opération fondamentale en programmation. Étant donné deux tableaux, l'intersection renvoie un nouveau tableau contenant uniquement les éléments communs aux deux. En JavaScript, l'implémentation de cette opération sans bibliothèque est étonnamment simple.

Solution

Le moyen le plus simple et le plus concis d'obtenir une intersection de tableaux en JavaScript consiste à utiliser la puissance de Array.prototype.filter et Array.prototype.includes. Cette approche évite le besoin de boucles complexes ou de dépendances externes.

const intersection = (array1, array2) => {
  return array1.filter((value) => array2.includes(value));
};

Alternativement, pour les navigateurs plus anciens qui ne prennent pas en charge les fonctions de flèche, vous pouvez utiliser le code suivant :

const intersection = (array1, array2) => {
  return array1.filter(function(n) {
    return array2.indexOf(n) !== -1;
  });
};

Exemple

Pour illustrer l'efficacité de cette solution, considérons ce qui suit exemple :

console.log(intersection([1, 2, 3], [2, 3, 4, 5])); // [2, 3]

La fonction d'intersection renvoie correctement un tableau contenant les éléments communs, [2, 3], comme prévu.

Remarque

Il est crucial de noter que Array.prototype.includes et Array.prototype.indexOf compare les éléments du tableau en utilisant une égalité stricte (===), ce qui signifie que si les tableaux contiennent des objets complexes, la comparaison ne correspondra qu'aux références d'objets, pas à leur contenu. Pour gérer ce cas d'utilisation, envisagez d'utiliser Array.prototype.some pour spécifier une logique de comparaison personnalisée.

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