Différence symétrique d'un tableau mappé

Beginner

This tutorial is from open-source community. Access the source code

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.