Maison >interface Web >js tutoriel >Comment puis-je trouver la différence entre deux tableaux en JavaScript ?

Comment puis-je trouver la différence entre deux tableaux en JavaScript ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-20 02:39:16265parcourir

How Can I Find the Difference Between Two Arrays in JavaScript?

Détermination de la différence entre deux tableaux en JavaScript

Introduction :

Détermination de la différence entre deux tableaux est une tâche courante en JavaScript. La différence peut être définie comme les éléments présents dans un tableau mais pas dans l’autre. Cet article propose plusieurs approches pour y parvenir en utilisant les méthodes intégrées de JavaScript.

Intersection et différence :

Une approche consiste à utiliser Array.prototype.includes() méthode. Il peut être utilisé à la fois pour trouver l'intersection (éléments communs) et la différence entre deux tableaux.

Intersection :

let intersection = arr1.filter(x => arr2.includes(x));

Ce filtre produit un tableau contenant le éléments communs à arr1 et arr2.

Différence :

let difference = arr1.filter(x => !arr2.includes(x));

Ce filtre crée un tableau avec les éléments qui sont présents uniquement dans arr1, pas dans arr2.

Différence symétrique :

De plus, on peut souhaiter déterminer la "ou exclusif" (différence symétrique) entre deux tableaux, composé d'éléments uniques des deux tableaux. Ceci peut être obtenu en combinant la différence des deux tableaux :

let symDifference = arr1.filter(x => !arr2.includes(x))
                        .concat(arr2.filter(x => !arr1.includes(x)));

Amélioration :

Pour une meilleure convivialité, il est possible de définir une méthode personnalisée pour Array. prototype qui permet une utilisation directe sur les baies :

Array.prototype.diff = function(arr2) { 
  return this.filter(x => !arr2.includes(x)); 
}

Avec cette amélioration, on peut facilement déterminer le différence :

[1, 2, 3].diff([2, 3]) // [1]

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