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

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