Introduction
Dans ce laboratoire, nous allons plonger dans le concept de différence symétrique et découvrir comment il peut être implémenté en JavaScript à l'aide de la fonction symmetricDifferenceBy(). Nous allons explorer comment cette fonction peut être utilisée pour trouver les valeurs uniques entre deux tableaux après avoir appliqué une fonction fournie à chaque élément des deux tableaux. Ce laboratoire est conçu pour vous aider à mieux comprendre cette puissante méthode JavaScript et comment elle peut être utilisée dans vos propres projets.
Différence symétrique d'un tableau mappé
Pour commencer à coder, ouvrez le Terminal/SSH et tapez node.
Cette fonction renvoie la différence symétrique entre deux tableaux, après avoir appliqué la fonction fournie à chaque élément des deux tableaux. Voici comment elle fonctionne :
- Créez un
Setà partir de chaque tableau pour obtenir les valeurs uniques de chacun d'eux après avoir appliquéfnà leurs éléments. - Utilisez
Array.prototype.filter()sur chacun d'eux pour ne conserver que les valeurs qui ne sont pas contenues dans l'autre.
Voici le code de la fonction symmetricDifferenceBy :
const symmetricDifferenceBy = (a, b, fn) => {
const sA = new Set(a.map((v) => fn(v))),
sB = new Set(b.map((v) => fn(v)));
return [
...a.filter((x) => !sB.has(fn(x))),
...b.filter((x) => !sA.has(fn(x)))
];
};
Vous pouvez utiliser symmetricDifferenceBy comme ceci :
symmetricDifferenceBy([2.1, 1.2], [2.3, 3.4], Math.floor); // [ 1.2, 3.4 ]
symmetricDifferenceBy(
[{ id: 1 }, { id: 2 }, { id: 3 }],
[{ id: 1 }, { id: 2 }, { id: 4 }],
(i) => i.id
);
// [{ id: 3 }, { id: 4 }]
Sommaire
Félicitations ! Vous avez terminé le laboratoire Différence symétrique d'un tableau mappé. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.