Maison > interface Web > js tutoriel > Comment puis-je trouver efficacement l'intersection, la différence et la différence symétrique de deux tableaux JavaScript ?

Comment puis-je trouver efficacement l'intersection, la différence et la différence symétrique de deux tableaux JavaScript ?

Barbara Streisand
Libérer: 2024-12-29 03:39:10
original
905 Les gens l'ont consulté

How Can I Efficiently Find the Intersection, Difference, and Symmetric Difference of Two JavaScript Arrays?

Recherche des différences de tableaux en JavaScript : intersection, différence et différence symétrique

En JavaScript, comparer des tableaux élément par élément peut être fastidieux . Pour simplifier ce processus, explorons un outil puissant : Array.prototype.includes().

Intersection

Pour obtenir les valeurs communes aux deux tableaux, nous peut utiliser filter(). Par exemple :

let intersection = arr1.filter(x => arr2.includes(x));
Copier après la connexion

Cela produit l'intersection : [2, 3].

Différence

Pour identifier les valeurs présentes uniquement dans arr1, nous pouvons filtrer les éléments qui existent dans arr2.

let difference = arr1.filter(x => !arr2.includes(x));
Copier après la connexion

Il en résulte la différence : [1].

Différence symétrique

Pour obtenir les éléments trouvés exclusivement dans arr1 ou arr2, nous combinons les deux différences :

let symDifference = arr1.filter(x => !arr2.includes(x))
                        .concat(arr2.filter(x => !arr1.includes(x)));
Copier après la connexion

Cela produit la différence symétrique : [1].

Comme le souligne @Joshaven Potter, ces méthodes peuvent être ajoutées directement au Array.prototype pour une flexibilité améliorée :

Array.prototype.diff = function(arr2) { 
  return this.filter(x => !arr2.includes(x)); 
}
Copier après la connexion

Ensuite, vous pouvez l'utiliser directement sur les tableaux :

[1, 2, 3].diff([2, 3]) // [1]
Copier après la connexion

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